假设使用分号作为字段终止符的格式错误的 csv 片段:
abc;d" "e"f;"ijk"
根据RFC4180,字段内的 dquote 应由两个 dquote 表示:
abc;d"" ""e""f;"ijk"
我试图通过一个sed
脚本来实现这一点,该脚本匹配任何前面没有或后面没有字段终止符的 dquote(here ;
):
echo 'abc;d" "e"f;"ijk"' | sed -e 's/\([^;]\)"\([^;]\)/\1""\2/g'
结果几乎是好的:
abc;d"" "e""f;"ijk"
除了之前的双引号e
不匹配,因此不重复。
谁能解释我为什么这不起作用,因为之前和之后e
没有分号。