2015-04-02 54 views
0

我正在使用grep来获取我想要用于另一个grep搜索的文件列表(而不是简单地将其管理)。如何grep在以前的grep目标文件列表中?

比如我作为一个输出:

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

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

回答

0

假设你想要的是包含文件的文件名'lineofcontent',你可以使用:

grep -l 'lineofcontent' file*.h 
1

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

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'