我有两个文件:
query.txt
i1
i2
i3
i4
和subject.txt
2 i1 i2 p
3 i2 i5 p
1 i3 i4 p
2 i3 i4 p
1 i5 i1 p
1 i4 i2 p
我需要从subject.txt
中获得在subject.txt
的第2列和第3列中有来自query.txt
的条目的行(按任何顺序(,并且我希望从subject.txt
中删除仅在subject.txt
的其中一列中有query.txt
的条目的行将。
所以我只想保留:
2 i1 i2 p
1 i3 i4 p
1 i4 i2 p
当您有基于列/字段的逻辑时,awk是一个更好的工具:
awk '
NR == FNR {q[$1] = 1; next}
$2 in q && $3 in q
' query.txt subject.txt