比较两个文件

比较两个文件

我想比较两个文件,其中数据由管道分隔|。这两个文件具有相同的结果,但只有少数字段可能有所不同。

文件一:

A|B|C|D

文件2:

A|B|F|D

我想逐个字段比较两个文件,也就是说,通过省略第 3 列,我的结果应该显示零差异。

我想找出差异(如果有的话)。除了我提到的几列之外。

答案1

您可以使用cut删除不需要的列。从手册页:

   -d, --delimiter=DELIM
          use DELIM instead of TAB for field delimiter

   -f, --fields=LIST
          select  only  these  fields;   also  print any line that contains 
          no delimiter character, unless the -s option is specified

   --complement
          complement the set of selected bytes, characters or fields

您可以使用它来创建临时文件,您可以使用diff如下方式进行比较:

cut -d'|' -f 3 --complement <file1 >file1.tmp
cut -d'|' -f 3 --complement <file2 >file2.tmp
diff file1.tmp file2.tmp

相关内容