前言
需要比较两版程序生成的csv文件除了id这一列之外其他部分是否相同。
文件很大,一个文件7G以上。
文件在linux服务器上。
两个文件记录顺序相同。
文件的每一列以‘,’分隔。
比较方案
在服务起上处理两个文件,将不需要参与比较的那一列删除。本例中是文件的倒数第二列不需要参与比较。所以预先处理命令如下:
awk -F, '{$(NF-1) = "";print $0}' 原文件名 > 处理后的文件名
命令解释:
-F后面的’,'表示 以‘,’为分隔符。
NF是列数,$(NF-1) 表示倒数第二列。
print $0 表示输出所有列。
如果是需要输出第1列就是print $1。
注意:使用这个命令后输出的文件的‘,’分隔符就不见了。
两个版本的文件都处理完后用diff比较差异即可。
diff 文件1的文件名 文件2的文件名