用“ |”将2个csv文件加入第三个文件作为分隔符

时间:2019-09-24 20:08:46

标签: linux join

我想加入两个文件

a.csv

customer|BillTo
100|3437146
103|3436977

b.csv

Customer|Parent
100|ANHEUSER-BUSCH INBEV
1025|INTRASTATE DISTRIBUTORS INC.

加入的文件应该是这样的

Parent|BillTo
ANHEUSER-BUSCH INBEV|3437146

我尝试使用awk,但似乎无法获得结果。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

$ join -j1 --header -o 2.2,1.2 -t'|' \
   <(head -n 1 a.csv; tail -n +2 a.csv | sort) \
   <(head -n 1 b.csv; tail -n +2 b.csv | sort)
Parent|BillTo
ANHEUSER-BUSCH INBEV|3437146

这里假设使用GNU join,因为您拥有这个标记过的linux似乎是一个安全的选择,并且像bashzshksh93之类的shell支持<(command)样式重定向(/bin/sh通常不会)。