Re: bash 3 的一個 script, for i in ...

看板Linux作者 (咖啡貓)時間17年前 (2008/08/13 11:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
以一般的情況而言, 通常會用 sed 或者其他的 scripting language 來處理類似問題, 例如以下的方法都可以: sed 's/$/ abc def !no/' /path/filename1 > /path/filename2 awk '{print $0 "abc def"}' /path/filename1 > /path/filename2 perl -ne 's/$/ abc def !no/;print' /path/filename1 > /path/filename2 那麼如果堅持只用純粹的 bash script, 完全不用內建命令以外的東西, 當作練習題來寫也是不錯的題目. IFS=$(echo -en "\n ") IFS=${IFS:0:1} for i in $(< /path/filename1); do echo "$i"' abc def !no' done > /path/filename2 unset IFS 如果不限定用原文提問者的架構, 其實也有更簡單明瞭的方法, 同樣只用 bash 內建命令: while read i; do echo "$i"' abc def !no'; done < /path/filename1 > /path/filename2 ※ 引述《"老學不會生" <who@where.not>, 看板: Linux》之銘言: : 請教一下 ... : (話說我是外行...) : 想在 bash 3.2.33 下, : 對某檔案 (/path/filename1) 內的每一行的行尾 加空白再加一些字 -- 譬如就是加 " : abc def !no" : 然後存成 /path/filename2 檔. : 我是這樣 抄 來的: : #!/bin/bash : for i in $( /path/filename1 ); do : echo "$i abc def !no" > /path/filename2 : done : ############## : 但是... 奇怪, 這樣不行 !? : 它說: : ......command not found : 請教, 不知要怎麼改才對? : 謝謝囉 ^_^ -- How shall my heart be unsealed unless it is broken? By Kahlil Gibran -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.8.136
文章代碼(AID): #18ebGcju (Linux)
文章代碼(AID): #18ebGcju (Linux)