【发布时间】:2014-01-21 17:39:37
【问题描述】:
一个白痴客户正在生成 csv 文件,但一个字段有时在(描述字段)中有多余的逗号。
是否有一个整洁的正则表达式来查找这些不良记录并将多余的逗号替换为其他内容。 SED 命令行就可以了。
例子:
A,B,C,This is a description,D,E
F,G,H,This is a description with a comma (,) in it,D,E
我需要一个 SED 来判断行中有太多逗号,并从字段 4 中删除多余的逗号。
我们没有资格告诉愚蠢的客户更改他们的代码。
已添加
我不会反对仅删除 一个 必须多次运行的虚假逗号的解决方案。
【问题讨论】:
-
两个问题:每一行有固定数量的字段吗?还有,哪些字段可以有额外的逗号?
-
我猜测您不能将分隔符更改为管道或其他东西吗?老实说,用逗号进行的描述并不少见。
-
@Birei - 是的,每一行都有固定数量的字段。假设现在只有一个字段可以有额外的逗号,但如果您可以调整该字段,那么您将获得 +1 或更多。
-
@Jonathan - 你是对的 - 我们无法更改文件格式。我们只能对文件进行后处理。
-
与其删除逗号,不如用引号转义描述:tools.ietf.org/html/rfc4180。这需要编写一些 bash 脚本逐行处理文件。