如何合并 CSV 文件

如何合并 CSV 文件

我有 CSV 文件,其格式为:

1.csv
1,2,3,4,5,6,7,8
2.csv
2,4,5,7,8,8,9,5
3.csv
2,3,4,5,6,7,8,9

……

取决于18.csv

我希望结果result.csv是:

1,2,3,4,5,6,7,8,2,4,5,7,8,8,9,5,2,3,4,5,6,7,8,9

我尝试过cat,但它只是在之后才附加一个。我还想转置 CSV,将其1.csv转换为:

1
2
3
4
5
6
7
8

答案1

我得到了 result.csv 文件:

for i in {1..18}; do paste $i.csv; done | paste -s > result.csv

或者和猫一起:

for i in {1..18}; do cat $i.csv; done | paste -s > result.csv

(使用paste/cat将所有内容放在一起,然后格式化输出,-s以便将其放在一行中。)

避免循环:

cat {1..18}.csv | paste -s > result.csv

转置 1.csv:

sed 's/,/\n/g' 1.csv

(只需通过回车转换逗号即可)

答案2

部分1:

paste -d, {1..18}.csv 

对于通用转置使用 datamash:

cat {1..3}.csv | datamash -t, transpose
1,2,2
2,4,3
3,5,4
4,7,5
5,8,6
6,8,7
7,9,8
8,5,9

相关内容