我正在使用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'