替换双引号内的逗号

replace comma within a doube quotes

我有一个 csv 文件,分隔符是 ','。有一个字符串列,它是双引号并且在双引号之间有一个 ','。

示例如下。 输入 csv 文件:

1,你好,"Welcome, Here"
2,零,"Nothing,Here"

我希望它像 输出 csv 文件:

1,您好,欢迎来到这里
2,零,这里什么都没有

你只展示了 2 行示例,它已经变得危险了。 当你确定确实有一个带双引号的字段时,你可以试试

echo '1,Hello,"Welcome, Here"
2,Zero,"Nothing,Here"' | sed -r 's/"(.*),(.*)"//'

当您在 "Nothing" 和 "Here" 之间有一个 space 时,此解决方案不起作用,这似乎是一个隐藏的要求。 可以用

替换 ',' 和 ', '(使用 space)
echo '1,Hello,"Welcome, Here"
2,Zero,"Nothing,Here"' | sed -r 's/"(.*), *(.*)"/ /'