做数据核验时,当txt数据文件较小时,我们可以将数据导入到Excel中进行比对处理,但当文件过大时,Excel是无法处理的,此时可以将数据文件放在服务器上进行操作处理。
使用工具:SecureCRTPortable、腾讯云服务器(Linux)
下面两个文件数据仅测试使用。点击下载测试数据>>Linux文本比对测试数据.rar
ods.txt
ryc.txt
两个文件中code均为主键,数据以空格作为分隔符。
1、将文件上传至服务器(sz)
rz
cat ods.txt | head - 10 cat ryc.txt | head - 10
查看两个文件数据发现,数据是乱码的。
file -i ods.txt file -i ryc.txt
发现两个文件的编码均为:utf-16le
iconv -f utf-16le -t UTF-8 ods.txt >> ods_utf8.txt iconv -f utf-16le -t UTF-8 ryc.txt >> ryc_utf8.txt
将ods.txt和ryc.txt两个文件的编码更改为utf8格式,并另存为ods_utf8.txt和ryc_utf8.txt
注意:若修改后显示还是乱码,需进行操作:选项→会话选项→外观→字符编码:UTF-8
file -i ods_utf8.txt file -i ryc_utf8.txt cat ods_utf8.txt | head - 10 cat ryc_utf8.txt | head - 10
从上面显示的前10行数据中,发现第一行为标题行,所以我们需要去掉标题。
sed -i '1d' ods_utf8.txt sed -i '1d' ryc_utf8.txt
awk -F " " '{print $1}' ods_utf8.txt > ods_key.txt awk -F " " '{print $1}' ryc_utf8.txt > ryc_key.txt
diff ods_2.txt ryc_2.txt
009、011表示ods有,ryc无;010表示ods无,ryc有。
将差异数据下载下来:
diff ods_key.txt ryc_key.txt > diff.txt sz diff.txt
方法二:(grep)
grep -vwf ods_key.txt ryc_key.txt
ryc无,ods有:
grep -vwf ryc_key.txt ods_key.txt
将差异数据下载下来:
grep -vwf ods_key.txt ryc_key.txt > ryc_diff.txt grep -vwf ryc_key.txt ods_key.txt > ods_diff.txt sz ryc_diff.txt ods_diff.txt
awk -F " " '{print $1"_"$2"_"$3"_"$4}' ods_utf8.txt > ods_pinjie.txt awk -F " " '{print $1"_"$2"_"$3"_"$4}' ryc_utf8.txt > ryc_pinjie.txt
然后按前面主键比对方法进行比对即可,不再赘余。
—————————————————————————
【版权申明】
如非注明,本站文章均为 数据小雄 原创,转载请注明出处:数据小雄博客,并附带本文链接,谢谢合作!
本文地址:http://www.zhangzhengxiong.com/?id=95。
—————————————————————————
流泪
0人
打酱油
0人
开心
2人
鼓掌
0人
恐怖
0人
发表评论
已有1位网友发表了看法: