Bash grep能跟踪它发现的模式吗?

Bash grep能跟踪它发现的模式吗?,bash,grep,Bash,Grep,我有一个很长的模式文件和中等长度的文本文件。我只是想知道模式文件中的字符串是否存在——我不在乎它们在哪一行。有没有办法跟踪找到了哪些模式,哪些没有找到?您可以这样做: while read line; do grep -q "$line" textFile echo "${line}: $?" done < patternFile while read line; do grep -q "$line" textFile && echo "$line

我有一个很长的模式文件和中等长度的文本文件。我只是想知道模式文件中的字符串是否存在——我不在乎它们在哪一行。有没有办法跟踪找到了哪些模式,哪些没有找到?

您可以这样做:

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

当然,您也可以使用grep-q$line textFile&&echo$line来获得匹配项的列表。谢谢。我在答案中添加了您的注释。这将为每个模式读取整个文件一次。如果文件非常大和/或正在搜索大量模式,则可以使用egrep搜索包含任何模式的行,然后搜索每个模式的输出。这是有用的,只有当有一个以上的模式。好评论!您会将egrep的输出存储在一个临时文件中,还是有一种简单的方法可以使用heredocs来实现?