【发布时间】:2021-01-19 21:40:33
【问题描述】:
我正在制作一个 csv 构造函数,但我遇到了一些问题。
我有这样的文件characteristics.tmp
1083108343
1083108360
1083108378
1083108386
我必须构建成这种格式:Name, "1083108343 ,1083108360 , 1083108378,1083108386";
我试过这个
cat characteristics.tmp| paste -s -d, -
我也试过tr '\n' ','
但是输出就像只有一个元素一样。我用 xxd 检查文件,字符 0d0a 是否应该在每一行的末尾?那么为什么没有检测到其他人呢?
,1083108386
【问题讨论】:
-
0d0a听起来像是在 Windows 上。dos2unix < characteristics.tmp | tr '\n' , | sed 's/,$/\n/'可以解决问题。 -
这可能会有所帮助:
dos2unix <characteristics.tmp | paste -s -d ',' -
@Cyrus 是的,那更好。
-
没有兄弟,我在 Ubuntu 18 上:D 但兄弟我发现了一些有趣的东西,我将文件传递给 xxd features.tmp 并看到这个“3130 3833 3130 3833 3433 0d0a 3130”,原因有一个所有行末尾的“ 0d0a”也许这就是粘贴和tr无法正常工作的原因。
标签: bash csv parsing scripting