我正在使用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 ...
我正在使用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 ...
假设你想要的是包含文件的文件名'lineofcontent',你可以使用:
grep -l 'lineofcontent' file*.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'