貼り付けコマンドは、csvファイルにデータを水平に並べるのではなく、行ごとに垂直に配置します。

貼り付けコマンドは、csvファイルにデータを水平に並べるのではなく、行ごとに垂直に配置します。

それぞれ「、」で区切られた3つの列を含むいくつかのCSVがあります。例:

header1,header2,header3
value1,value2,value3
value1,value2,value3
...

使用このチュートリアル、実行すると、paste -d "," *csv > output.csv次のような結果が出ると思います。

header1,header2,header3,header1,header2,header3,...
value1,value2,value3,value1,value2,value3,...
value1,value2,value3,value1,value2,value3,...

ただし、出力は次のようになります。

header1,header2,header3,
header1,header2,header3,
header1,header2,header3,
...
value1,value2,value3,
value1,value2,value3,
...

特に、各行の幅はcsvファイルの数* 3の幅ではなく、3列の幅です。

私は何が間違っていましたか?

答え1

元のファイルには\r\n行末がある可能性が高いです。

その場合、最終ファイル\rには各セグメント間に追加のコンテンツがあります。以下を試してくださいtr

paste -d "," *csv | tr -d "\r" > output.csv

関連情報