Command-Line
paste 命令將 csv 文件中的數據垂直逐行放置,而不是水平並排放置
我有幾個 csv-s,每個包含 3 列,用“,”分隔。例子:
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, ...
特別是每行是 3 列寬,而不是 csv 文件的數量 * 3 寬。
我究竟做錯了什麼?
最有可能的是,您的原始文件有
\r\n
行尾。如果是這樣,最終文件將
\r
在每個線段之間有一個額外的。嘗試使用tr
:paste -d "," *csv | tr -d "\r" > output.csv