我有两个具有以下数据的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|
为什么不是'A | B | C | 1 | D'?满足条件“A,B,C”匹配并且“D!= x” – karakfa
此Q不清楚且不完整。请指定字段分隔符和文件比较方法(即compare * file1,line1,fields {1,2,3,5}'* to * file2,line1,fields {1,2,3,5}'*或别的东西)。包括你编写的代码来解决这个问题。 – agc
正如问题中提到的字段分隔符是|。 将文件1的第1,第2和第3字段与文件2的第1,第2和第3进行比较,如果匹配,则比较两个文件的第5字段。如果第5个字段不同,则输出应该是file1的第1,第2和第3个字段,否则应该继续检查其他行。 – mj0889