我有两个csv文件。
第一个文件的列
col1, col2, col3,......col4095, col4096, col4097
第二个文件的列
col1, col2, col3,......,col4095, col4096, col4097
预期输出 - 丢弃第一个文件的最后一列
col1, col2, col3.......,col4095. col4096, col1, col2, col3....col4095, col4096, col4097
两个文件的行数相同,我想将这两个文件合并为一个文件。
答案 0 :(得分:8)
使用paste
:
paste -d, f1.csv f2.csv > out.csv
忽略第一个文件的最后一列:
awk -F, 'NF-=1' OFS=, f1.csv | paste -d, - f2.csv > out.csv
答案 1 :(得分:0)
仅限awk
:
awk -F ',[[:blank:]]*' 'NR==FNR {for (i=1;i<NF;i++) out=out$i", " ; next} \
{out=out$0} END{print out}' f1.csv f2.csv
-F ',[[:blank:]]*'
将字段分隔符设置为,
,后跟任意数量的空格/标签
NR==FNR
仅适用于第一个文件,然后执行{for (i=1;i<NF;i++) out=out$i", " ; next}
,将迭代,并连接所有字段,但变量{{1}中的最后一个字段}
第二个文件的记录将连接到变量out
- out
最后,打印变量{out=out$0}
的值 - out
示例:强>
END{print out}