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

試しましたが、cat1つずつ追加されます。また、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

-s(paste / catを使用してすべてを1つにまとめてから、1行に収まるように出力形式を指定します。)

ループ防止:

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

関連情報