当前位置:  开发笔记 > 数据库 > 正文

有效地比较两个csv与+300000记录(用awk?)

如何解决《有效地比较两个csv与+300000记录(用awk?)》经验,为你挑选了1个好方法。

我有两个csv(A有30万行,B有1 000 000行).记录通过列ID(关系1-1)相关,但具有不同的列顺序且不按ID排序.我需要获得在A中缺少ID的70万行B.

A.csv

A.ID,A.Field01,A.Field02   
2,a,d                      
4,b,e                      
1,c,f          

B.csv

B.Field01,B.ID,B.Field02 
g,2,f
f,4,r
h,6,k
a,1,3

(我想选择h,6,k)

我想我可以用像sqlite这样的sgbd来解决它,但我确信它可以用更简单,更高效的东西来完成,就像awk一样.

我想调整我发现的这个命令:

awk 'ARGIND==1 {x[$0]++; next} !x[$0]' B.csv A.csv

然而,这比较了整行,我不知道如何选择具体的A.ID和B.ID作为要比较的字段.

我也对任何其他有效的解决方法感兴趣!

干杯



1> James Brown..:
$ awk -F","  'FNR==NR{a[$1];next}!($2 in a)' a b
B.Field01,B.ID,B.Field02 
h,6,k

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有