我有两个单独的.txt文件:
list.txt,包含字符串列表:
string1
string2
string3
和entries.txt,包含7个字段的不同行
name field2 field3 field4 field6 string1 field8
我需要从entries.txt获取所有第7个字段为==的行到list.txt中的任何一行。
我知道grep,这是grep -F list.txt entries.txt
,但我需要它专门用于第7个字段,所以我想使用awk。
所以它会像awk '$7==$(any string from list.txt)'
如何撰写$(any string from list.txt)
部分?
答案 0 :(得分:3)
尝试这个awk one-liner:
awk 'NR==FNR{a[$0];next}$7 in a' list.txt entries.txt
没有测试,但应该符合您的要求。
注意: $ 6或$ 7 ?
你在问题中说,它应该是$7
,所以我使用了$7
。但看看你的例子,它似乎应该是$6
?无论如何,你可以自己改变列索引。