Re: [問題] 問一個Shell script
※ 引述《allen501pc.bbs@ptt.cc (電腦小玩家)》之銘言:
> ※ 引述《allen501pc (電腦小玩家)》之銘言:
> 上一篇貼錯code,這個才是對的....Orz
> #!/bin/bash
> # 目的:這是用來搜尋特定文字並且合成一個file的shell script
> # 作者: allen501pc
> # 日期: 2008/04/21
> read -p "請輸入您要的關鍵字:" -a related
> read -p "請輸入您要合併搜尋到的檔案名稱:" result_file
> read -p "請輸入您要區隔這些檔案的分隔線為何?" split_diff
> tmpfile=tmp_file_`date +%H%M%S`
> grep -lr $related * > $tmpfile
> lines=`wc -l $tmpfile|awk '{print $1}'`
> for (( i=1; i!="$lines+1" ; i=i+1 ))
> do
> tmp=`head -n $i $tmpfile|tail -n 1`
> cat $tmp >> $result_file
> printf $split_diff"\n" >> $result_file
> done
> rm -rf $tmpfile
> : ****************
> : 不好意思,請問一下,上面這種Script要怎麼寫成grep -lr $related * 輸出給
> : array 變數接收?我試了許久還是試不出來= =
> : 難道一定要利用pipeline導向到一個file之後再來將每個搜尋出來的檔案名合併成為
> : 一個file嘛?
> : 因為我想說能否利用Array 變數存放每一行grep的結果,然後利用for loop
> : 直接資料導向到一個檔案上!
> : 總覺得導向到一個file感覺怪怪的... Q_Q ,但是最後妥協只好寫成這樣子...Orz
> : 能否有高手幫幫我?小弟感激不盡了...
> : PS:已參考 鳥哥的網站,Study-Area Shell script 教學網站
#!/bin/sh
...
touch $result_file
for i in `grep -lr $related *`
do
echo ========== $i start ========== >> $result_file
cat $i >> $result_file
echo ========== $i end ========== >> $result_file
done
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 220-133-85-146.hinet-ip.hinet.net
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章