我知道我可以找到特定类型的文件,然后一次性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是什么样的?我尝试了一些组合,但无法做到正确。
答案 0 :(得分:20)
xargs grep "your pattern" < my-file-list.txt