Googlebot Asked: 2021-11-02 00:41:27 +0800 CST2021-11-02 00:41:27 +0800 CST 2021-11-02 00:41:27 +0800 CST 用 sed 替换错误转义的引号 772 我需要清理一个非常大的 CSV,它错误地转义了双引号(\\"而不是\")。如何替换所有实例 \\" \\\" \\\\" ..... 有\"或只是空间? 因为\我问了这个问题以避免增加混乱。 sed 2 个回答 Voted Best Answer muru 2021-11-02T00:49:49+08:002021-11-02T00:49:49+08:00 这应该足够了: sed 's/\\\\*"/\\"/' 这将反斜杠 ( \\) 后跟任意数量的反斜杠 ( \\*) 和双引号 ( ") 替换为反斜杠后跟双引号 ( \\")。使用sed 's/\\\\*"/\\"/g' 替换一行中的所有匹配项。 schrodingerscatcuriosity 2021-11-02T00:52:12+08:002021-11-02T00:52:12+08:00 如果您sed支持-E扩展正则表达式选项(这不计算反斜杠的数量),则另一种选择: sed -E 's/[\]+"/\\"/g' file
这应该足够了:
这将反斜杠 (
\\
) 后跟任意数量的反斜杠 (\\*
) 和双引号 ("
) 替换为反斜杠后跟双引号 (\\"
)。使用sed 's/\\\\*"/\\"/g
' 替换一行中的所有匹配项。如果您
sed
支持-E
扩展正则表达式选项(这不计算反斜杠的数量),则另一种选择: