如何将文件中重复的双引号替换为单个双引号?
解决重复转义双引号的替换问题
你之前用的sed命令无效,是因为sed -e 's/^"//g'只会匹配行首的单个",完全不符合你要替换所有重复""的需求,所以文件内容没变化。
正确的处理命令
针对固定两个重复的情况
直接全局替换所有""为单个":
sed -e 's/""/"/g' test.sql > test_output.sql
针对可能存在多个连续重复的情况(比如3个及以上)
用正则匹配一个或多个连续的",统一替换成单个:
sed -e 's/"\+/"/g' test.sql > test_output.sql
效果验证
用你提供的SQL示例测试:
原内容:
UPDATE TableA SET country_code = ""FR"", WHERE name = ""A""; UPDATE TableA SET name = ""A's B"" WHERE country_code = ""FR"";
执行命令后会输出:
UPDATE TableA SET country_code = "FR", WHERE name = "A"; UPDATE TableA SET name = "A's B" WHERE country_code = "FR";
完全符合你的需求。
内容的提问来源于stack exchange,提问作者Elaine
相关产品推荐
相关产品推荐

