次の形式の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
1つずつ追加されます。また、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