3

我有两个单独的 .txt 文件:

list.txt,包含字符串列表:

string1
string2
string3

和entry.txt,包含7个字段的不同行

name field2 field3 field4 field6 string1 field8

我需要从第 7 个字段为 == 的 entry.txt 中获取所有行到 list.txt 中的任何一行。

我知道 grep,这是grep -F list.txt entries.txt,但我需要它专门在第 7 个字段中,所以我想使用 awk。

所以它会像awk '$7==$(any string from list.txt)'

我该如何写这个$(any string from list.txt)部分?

4

1 回答 1

3

试试这个 awk 单线:

awk 'NR==FNR{a[$0];next}$7 in a' list.txt entries.txt

没有测试,但应该可以满足您的要求。

注意6 美元还是 7 美元

你在你的问题中说,应该是$7,所以我用了$7。但看看你的例子,它似乎应该是$6?无论如何,您可以自己更改列索引。

于 2013-05-02T20:06:15.727 回答