读取文件并通过管道传输到 grep

读取文件并通过管道传输到 grep

想知道是否有人可以帮助我,我对 bash 很生疏,似乎陷入了困境。

我将一个字符串列表存储在一个文件中,并希望读取该文件并将每行返回到 grep,然后 grep 在目录中搜索包含该字符串的文件。

初次尝试:

cat filename | grep -lr *

但这并没有返回任何输出。

有人能给我一些关于最佳方法的指导吗?

答案1

避免无用地使用cat。当然,您可以使用 等来解决这个问题xargs。但与简单循环相比,这太复杂了while

while read i 
do
    grep -r -- "$i" directory/
done < filename

答案2

我会尝试这个。

cat filename | while read line ; do grep -lr "$line" * ; done

您也可以将其通过管道传输到“sort -u”,这样就不会出现重复。

相关内容