保留来自文件 grep 的多个匹配项的行
Keep lines with multiple matches from file grep
我有两个文件:
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
当您拥有基于 column/field 的逻辑时,awk 是更好的工具:
awk '
NR == FNR {q[] = 1; next}
in q && in q
' query.txt subject.txt
我有两个文件:
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
当您拥有基于 column/field 的逻辑时,awk 是更好的工具:
awk '
NR == FNR {q[] = 1; next}
in q && in q
' query.txt subject.txt