想知道是否有人可以帮助我,我对 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”,这样就不会出现重复。