【发布时间】:2020-09-02 09:39:38
【问题描述】:
这是How to compare two columns of two csv files with awk?的后续问题。
我有两个 csv 文件需要与一列进行比较。
我的member.csv 文件如下所示:
ID|lastName|firstName|pubID
01|Lastname01|Firstname01|pubID01
02|Lastname02|Firstname02|pubID02
03|Lastname03|Firstname03|pubID03
第二个文件check-ID.csv 看起来像:
Lastname01|Name01|pubID01|Hash01
Lastname02|Name02|pubID02|Hash02a
LastnAme0X|Name03|pubID03|Hash03
Lastname04|Name04|pubID04|Hash04
Lastname02b|Name02|pubID02|Hash02b
Lastname01|Name01|pubID01|Hash01b
--> Lastname04 不在我的member.csv 中!
我想要检查check-ID.csv 第一列的值是否等于member.csv 中第二列的值,或者check-ID.csv 第四列的值是否等于第三列的值在member.csv
我的尝试是
awk 'BEGIN{ FS="|"} FNR==NR{ a[$2]; b[$4]; next }($1 in a || $3 in b) ' member.csv check-ID.csv | sort -t'|' -k1
但显然我没有得到正确的条件。
我希望得到过滤和排序的输出,因此只有成员会像这样列出:
Lastname01|Name01|pubID01|Hash01
Lastname01|Name01|pubID01|Hash01b
Lastname02|Name02|pubID02|Hash02a
Lastname02b|Name02|pubID02|Hash02b
LastnAme0X|Name03|pubID03|Hash03
任何帮助表示赞赏!
【问题讨论】:
标签: awk