我需要在'contract'列上合并这两个已排序的csv文件(这对两个文件都很常见):
file1.csv
数据;客户端;合同
2017年3月4日; LA00024; 1-456
2017年3月4日; LA00025; 1-789
file2.csv
合同; PDA
1-456; 00024
1-789; 00025
我想得到的输出是一个独特的表:
数据;客户端;合同; PDA
2017年3月4日; LA00024; 1-456; 00024
2017年3月4日; LA00025; 1-789; 00025
但是使用命令
$ join -o 1.1 1.2 1.3 2.2 -t“;” -1 3 -2 1 file1.csv file2.csv
我得到的结果只是一行
$ data; client; contract; PdA
除了输入文件中的标题合并之外,连接不会返回任何内容吗? 为什么会这样?
答案 0 :(得分:1)
在join
之前对文件进行排序。
join -o 1.1,1.2,1.3,2.2 -t ';' -1 3 -2 1 <(sort -n -t";" -k3 file1.csv) <(sort -n -t";" -k1 file2.csv)
PS:对于示例数据,相关命令对我有用。 ,
中必填-o FORMAT
。