9

我知道我可以找到特定类型的文件,然后一口气将它们 grep,即

find . -type f -name "*.log" -exec grep -o "some-pattern" {} \;

但我需要分两步完成。这是因为查找操作很昂贵(有很多文件和子目录要搜索)。我想将文件列表保存到一个文本文件中,然后在需要时重复 grep 在这组预先计算的文件上寻找不同的模式。第一部分很简单:

find . -type f -name "*.log" > my-file-list.txt

现在我有一个看起来像这样的文件:

./logs/log1.log
./logs/log2.log
etc

grep 是什么样的?我尝试了一些组合,但无法正确使用。

4

1 回答 1

21

xargs grep "your pattern" < my-file-list.txt

于 2013-02-01T22:02:11.813 回答