要在文件中查找字符串并打印输出的第一列,我们可以使用
grep "foo" file.txt | awk '{print $1}'
可以单独使用awk
awk '/foo/ {print $1}' file.txt
(https://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
谢谢! 阿布舍克巴克
答案 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
。