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