粘贴命令将 csv 文件中的数据垂直逐行放置,而不是水平彼此相邻

粘贴命令将 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 宽。

我究竟做错了什么?

答案1

最有可能的是,您的原始文件有\r\n行尾。

如果是这样,最终文件的\r每个线段之间都会有一个额外的内容。尝试使用tr

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

相关内容