このようなコマンドを使用して、3つのcsvファイルをマージしました。
paste -d "," a.csv b.csv c.csv > result.csv
結果 csv には、次のように各行の b.csv 列と c.csv 列の間に予期しない改行文字があります。
col-a1, col-a2, col-b1, col-b2, col-b3
,col-c1, col-c2 ...
b.csvはもともとtsvで、次のコマンドを使用してcsvに変換されました。
cut -f3-5 b.tsv | tr "\t" "," > b.csv
ここで、元のb.tsvの5番目のフィールドは行の最後のフィールドです。
なぜ\ rがあるのですか?
これを考えると、貼り付けコマンドを使用する必要があります。 3 csvのすべての列が1行になるように改行を削除するにはどうすればよいですか?
アップデート:以下の説明に応答して、このコマンドの出力は
LC_ALL=C sed -n 'l;2q' result.csv
次のようになります。
col-a1, col-a2, col-b1, col-b2, col-b3\r,col-c1, col-c2$
...
答え1
コメントのヒントをいただいたStéphane Chazelasに感謝します。
ついに私は答えを得ました。削除の場合、\r
tsvをcsvに変換するコマンドは次のようになります。
cut -f3-5 b.tsv | tr "\t" "," | tr -d "\r" > b.csv