【发布时间】:2021-11-02 20:35:55
【问题描述】:
我有一个包含以下形式的行的文件:
产品、品牌、成本、评论、位置、评级
我想把分隔符“,”改成新字符“;”
我尝试过使用 sed 命令,例如 `sed 's/,/;/g' prod.txt 但它也改变了数据中的逗号(“评论”、“品牌”和其他列)!
我可以使用 csvkit,但它会帮助我使用更通用的基本工具,如 sed、tr、grep、cut 等,因为我稍后将不得不概括这个问题,而 csvkit 将没有用处
请注意,我的数据是字符串,每个值都封装在引号“之间。这可能有助于隔离需要更改的逗号
我在这方面很糟糕,非常感谢您的帮助
最好的,
【问题讨论】:
-
改用csvkit中的
csvformat:csvformat -D '|' prod.csv > output.psv -
谢谢肖恩,但是有没有使用 sed 的解决方案?
-
最好使用理解格式的工具,而不是尝试使用正则表达式来破解某些东西。 sed 仅适用于最琐碎的 CSV;嵌入逗号、引号、换行符等的字段并非如此。
-
好吧,我明白了,只是我有其他文件有同样的问题,但是是txt格式而不是csv
-
我已编辑问题以使其更清晰