我有两个包含以下数据的UNIX文件。我必须比较文件1的字段1,字段2和字段3与文件2,如果匹配,我必须检查文件1中的字段5是否与文件2的字段5匹配,如果它不匹配我必须打印它来自文件1,否则只是忽略。
档案1
A|B|C|1|D|
A|B|D|1|D|
A|B|E|1|D|
A|B|F|1|D|
文件2
A|B|Z|1|D|
A|B|C|1|x|
A|B|D|1|y|
A|B|E|1|D|
所以结果应该是 A | B | C | 1 | d |
A|B|D|1|D|
答案 0 :(得分:0)
awk
救援!
这用于匹配字段1,2,3,5
$ awk -F'|' '{k=$1 FS $2 FS $3 FS $5} NR==FNR{a[k];next} k in a' file2 file1
A|B|E|1|D|
你的问题不一样,但结果与你的不符,你需要解释为什么不应该打印其中一条记录
$ awk -F'|' '{k=$1 FS $2 FS $3}
NR==FNR {a[k]=$5; next}
k in a && a[k]!=$5' file2 file1
A|B|C|1|D|
A|B|D|1|D|