我知道我可以找到特定类型的文件,然后一次性对它们进行 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 是什么样子的?我尝试了几种组合,但无法正确组合。
最佳答案
xargs grep "your pattern" < my-file-list.txt
关于shell - 从文本文件列表中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14655717/