将关键字文件管道化为grep

时间:2015-05-13 15:17:26

标签: macos bash shell

我有一个文件,其中包含一些我想搜索其他文件的关键字。我想在另一个文件上使用awk生成带有关键字的文件,然后输入grep。我尝试了以下方法:

awk '{ print $1 }' file1 | grep -f file2

我无法确定grep是否将file2awk '{ print $1 }' file1解释为输入关键字列表,即-f标志的文件。我猜这是相反的。如果没有先将关键字awk '{ print $1 }' file1写入文件,我如何将其列入grep

2 个答案:

答案 0 :(得分:2)

使用process substitution

grep -f <(awk '{print $1}' file1) file2

此构造用于代替文件名,awk命令的输出将由grep用于代替文件的内容。

答案 1 :(得分:0)

您可以考虑从awk输出管道xargs

awk '{ print $1 }' file1 | xargs -I {} grep '{}' file2