要在文件中查找字符串并打印输出的第一列,我们可以使用
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
谢谢!阿比舍克
等效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))
而不是正则表达式匹配。($0 ~ i)
-F
grep
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句