我正在尝试比较两个非常大的csv文件,并通过两者中的自由文本字段进行比较。我尝试过使用awk,例如
awk -F, 'FNR==NR{a[$2]++;next} a[$2]' table1.csv table2.csv > duplicates.csv
但输出csv文件格式不正确,可能是因为自由文本字段包含逗号。我想将重复表中的整个重复行保存在table1中。谢谢你的帮助。
答案 0 :(得分:0)
我是否理解你需要的东西:
$ more filea fileb
::::::::::::::
filea
::::::::::::::
1,a
2,b
3,c
::::::::::::::
fileb
::::::::::::::
1,d
x,e
3,f
$ awk 'BEGIN {
while (getline a < "filea" && getline b < "fileb") {
split(a, aa, ",")
split(b, bb, ",")
if (aa[1] == bb[1]) {
print a, b
}
}
}'
1,a 1,d
3,c 3,f