2014-02-12 44 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来搜索包含任意*模式的行,然后搜索每个模式的输出。 (只有在有多个模式时才有用。) –

相关问题