关于这个txt文件,最好将其描述为制表符分隔的 .txt 文件,其中包含内容的行之间有空行:
人们会认为跑步
cat goods.txt | tr "\t" "," > output.csv
应该将 .txt 文件干净地转换为 .csv。
(按照这个堆栈溢出解决方案)
但是,我观察到值和文本转移到错误的列中:
在其他情况下,数字在列之间分开:
我不确定我忽略了什么?实现此处所需的文件转换的正确方法是什么?
答案1
使用米勒(https://github.com/johnkerl/miller)
mlr --t2c cat goods.txt >goods.csv
你会得到这个输出https://gist.github.com/aborruso/fab6a48a390a9c54de55dece9141bea6
是你想要的吗?
答案2
以下 csvkit 实用程序将 .txt 干净地转换为 .csv 文件:
csvformat -t 货物.txt
信用额归入 reg惠而浦论坛。
有关 csv 格式的更多信息这里(将 CSV 文件转换为自定义输出格式)。
另请注意,根据csvkit 手册:
===========
请注意,每个 csvkit 工具都会执行以下操作:
删除可选的引号字符,除非设置了 –quoting (-u) 选项来更改此行为
如果使用 –delimiter (-d) 或 –tabs (-t) 选项设置输入分隔符,则将字段分隔符更改为逗号
将记录分隔符更改为换行符
如果使用 –quotechar (-q) 选项设置引号字符,则将引号字符更改为双引号
如果使用 –encoding (-e) 选项设置输入编码,则将字符编码更改为 UTF-8
===========