首页 > 解决方案 > 从命令行加入 CSV

问题描述

我有两个 csv 文件,我想“合并”它们并用来自 CSV2 的数据丰富 CSV1。它们都有相同的 B 列。

CSV1:

A,B,C,D,E
1,2,3,,
1,2,3,,
1,2,3,,

CSV2:

B,D,E
2,4,5
2,4,5
2,4,5

我想拥有:

A,B,C,D,E
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5

最好的方法是什么?考虑文件有 200 万行。

标签: bashcsvunix

解决方案


从 中提取第 1 到第 3 列,从using中提取第CSV12 和第 3列,使用自定义分隔符将它们组合起来。CSV2cutpaste,

$ paste -d, <(cut -d, -f1-3 CSV1) <(cut -d, -f2,3 CSV2)
A,B,C,D,E
1,2,3,4,5
1,2,3,4,5
1,2,3,4,5

推荐阅读