回文章列表
作者allen501pc.bbs@ptt.cc (電腦小玩家) 看板: linux
標題[問題] 問一個Shell script
時間批踢踢實業 (2008/04/21 Mon 03:08:30)
> Goal:
> 利用grep找尋含有某個關鍵字檔案,列表出來,並將這些檔案內容利用導向,
> 合併成為一個檔案。

#!/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 ; i=i+1 ))
do
    tmp=`awk '{ print $i}' $tmpfile`
    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: 220.133.214.148
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻