Linux
如何合併 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
我得到了 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
(只需通過輸入轉換逗號)
第 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