2014-02-12 48 views
-1

我有一個很長的模式文件和中等長度的文本文件。我只是想知道模式文件中的字符串是否存在 - 我不在乎它們在哪條線上。有沒有辦法跟蹤哪些模式被發現,哪些不是?可以grep跟蹤它發現的模式嗎?

+0

試試這個:'男人awk' – DwB

回答

2

你可以做這樣的事情:

while read line; do 
    grep -q "$line" textFile 
    echo "${line}: $?" 
done < patternFile 

環比patternFile和每個模式調用的textFile一個grep -qgrep -q將不會產生任何輸出,但如果找到該模式,它會將的退出狀態設置爲0,如果未找到,則將其設置爲1。

正如that other guy評論,你可以得到一個清單,這樣所有匹配模式:

while read line; do 
    grep -q "$line" textFile && echo "$line" 
done < patternFile 
+1

,當然你可以做'grep的-q「$行」文本文件&& echo「$ line」'來獲得匹配的列表。 –

+0

謝謝。我將你的評論添加到答案中。 – pfnuesel

+0

爲每個模式讀取整個文件一次。如果文件非常大,或者如果您要搜索大量模式,可以使用egrep來搜索包含任意*模式的行,然後搜索每個模式的輸出。 (只有在有多個模式時纔有用。) –

相關問題