awk将模式从文件匹配到另一个文件

时间:2017-09-13 13:38:59

标签: linux bash shell awk

要在文件中查找字符串并打印输出的第一列,我们可以使用

grep "foo" file.txt | awk '{print $1}'可以单独使用awk

完成

awk '/foo/ {print $1}' file.txthttps://stackoverflow.com/a/22866418/1662898)。

我想要搜索文件中的字符串列表,而不是单个字符串(foo)作为模式。使用grep,它将是

grep -Ff file.txt file2.txt | awk '{print $1}' > outFile.txt

我可以单独使用awk吗?

file.txt
abcd
acde
a2rt

file2.txt
1 albcd dhakd kdf
3 abcdbd and
2a bda2rt tert

outFile.txt
3
2a

谢谢! 阿布舍克巴克

1 个答案:

答案 0 :(得分:4)

等效awk命令就是这个命令:

awk 'NR==FNR{a[$1]; next} {for (i in a) if (index($0, i)) print $1}' file.txt file1.txt

<强>输出:

3
2a

由于(index($0, i))的{​​{1}}选项,使用非正则表字符串比较($0 ~ i)而不是正则表达式匹配-F

相关问题