shell - 从文本文件列表中提取

标签 shell grep

我知道我可以找到特定类型的文件,然后一次性对它们进行 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/

相关文章:

bash - 在 bash 中按 alt + numeric 会得到 (arg [numeric]) 那是什么?

shell - 如何从另一个文件中查找包含任何字符串的行?

linux - 在 CD 上运行的 Grep 脚本

perl - 如何使用 Perl 替换 grep 来保留文件名

linux - 有没有办法将以下逻辑放入 grep 命令中?

Python 子进程 : interacting with a shell script

linux - 如何查找倒数第二个命令的退出状态?

linux - 为什么路径中的波浪号没有在 shell 脚本中展开?

用于更新多个文件夹的命令的 Linux shell 脚本

Bash 脚本使用 Grep 在文件中搜索模式