回文章列表
作者allen501pc.bbs@ptt.cc (電腦小玩家) 看板: linux
標題Re: [問題] 問一個Shell script
時間批踢踢實業 (2008/04/21 Mon 14:05:34)
※ 引述《allen501pc (電腦小玩家)》之銘言:
: > Goal:
: > 利用grep找尋含有某個關鍵字檔案,列表出來,並將這些檔案內容利用導向,
: > 合併成為一個檔案。
上一篇貼錯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 教學網站

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 140.130.100.237
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻