linux - 我如何在以前的 grep 所针对的文件列表中进行 grep?

标签 linux grep

我正在使用 grep 获取我想用于另一个 grep 搜索的文件列表(而不是简单地通过管道传输)。

例如我得到的输出:

file1.h:XXX: linecontent
file2.h:XXX: linecontent
file3.h:XXX: linecontent
file4.h:XXX: linecontent

我只想 grep file1.h, file2.h ...

最佳答案

我假设您想搜索包含两种不同模式的文件。如果是这样,这就是您想要的:

grep 'your pattern 2' `grep -l 'your pattern 1' *`

反引号中的内容将首先执行,并将输出代入命令行。使用 -l 标志会将 grep 命令的输出限制为仅文件名。

如果有大量文件与 your pattern 1 匹配,这可能会失败。解决方案是使用 xargs

grep -l 'your pattern 1' * | xargs grep 'your argument 2'

关于linux - 我如何在以前的 grep 所针对的文件列表中进行 grep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416955/

相关文章:

linux - 有没有办法在不清除屏幕的情况下替换行?

C pthread 从多个线程访问数组

linux - Linux 下的 iPod 开发

linux - 使用 linux 命令列出给定时间之间目录中的文件

bash - 我如何在 grep 中使用 "-"字符?

linux - 如何在 Linux 终端中按时间顺序对列表进行排序?

c - 将文件写入 .c 中的另一个文件

regex - 使用正则表达式检索字符之间的字符串

linux - 如何忽略以空白字符开头的行?

linux - 有没有办法在树中显示查找定位结果?