读取文件和管道到grep


2

想知道是否有人可以帮助我,我对bash非常生疏,似乎有点陷入僵局。

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

初步尝试:

cat filename | grep -lr *

但是这不会返回任何输出。

谁能给我一些关于最佳方法的指示?

Answers:


3

避免无用的使用cat。你当然可以解决这个问题xargs。但与简单的while循环相比,这过于复杂。

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

1
你确定那个peth吗?很确定它在最后一行之后完成filename
PriceChild 2011年

啊道歉,从未见过偷偷摸摸的编辑。从来没有在那里使用管道..
PriceChild 2011年

2

我会尝试这个。

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

你也可以把它管道“排序-u”,这样你就不会重复了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.