我在外殼的工作包括,我想寫一個班輪將讀取文件一個的文件內容和文件乙執行grep
命令。shell腳本來讀取文件和grep其他文件
例如,假設有兩個文件
dataFile.log已下列值
abc
xyz
...
等
現在讀ABC和grep o ñsearchFile.log像grep abc searchFile.log
我有shell腳本相同,但要一個襯墊它
for i in "cat dataFile.log" do grep $i searchFile.log done;
我在外殼的工作包括,我想寫一個班輪將讀取文件一個的文件內容和文件乙執行grep
命令。shell腳本來讀取文件和grep其他文件
例如,假設有兩個文件
dataFile.log已下列值
abc
xyz
...
等
現在讀ABC和grep o ñsearchFile.log像grep abc searchFile.log
我有shell腳本相同,但要一個襯墊它
for i in "cat dataFile.log" do grep $i searchFile.log done;
您可以使用grep -f
選項:
cat dataFile.log | grep -f searchFile.log
編輯
好了,現在我明白了這個問題。你想用每行從dataFile.log
在searchFile.log
到grep。我也看到你有value1|value2|...
,所以不是grep
你需要egrep
。
試試這個:
for i in `cat dataFile.log`
do
egrep "$i" searchFile.log
done
編輯2
繼chepner建議:
egrep -f dataFile.log searchFile.log
如何執行以下操作:它甚至忽略空行和#註釋:
while read FILE; do if [[ "$FILE" != [/a-zA-Z0-9]* ]]; do continue; fi; grep -h pattern "$FILE"; done;
當心:沒有編譯這一點。
試試這個:
grep -f dataFile.log searchFile.log
需要注意的是,如果你想與grep爲固定字符串,則需要-F
,如果你想在dataFile.log文本爲正則表達式匹配,使用-E
或-P
是的,我想這樣做。 searchFile.log包含以下數據: 'M | 21 | Sid' 'F | 27 | Ani' 'M | 24 | Joe' – Sid 2013-02-15 11:39:41