Sed 多行替换转义字符串

Sed 多行替换转义字符串

我正在尝试将 mysqldump 输出文件转换为与 PostgreSQL 兼容的 SQL。问题在于处理转义字符串值。

我需要从:

VALUES('blah blah blah','second string \'with escaped\'
quotes 
and multiple lines goes here',35,10,'meh')

到:

VALUES(E'blah blah blah',E'second string \'with escaped\'
quotes 
and multiple lines goes here',35,10,E'meh')

注意在每个单引号字符串前添加“E”。

如何在 sed 中实现这一点?只要我可以流式传输它们(这里处理多 GB 文件),也可以使用其他正则表达式引擎。

答案1

我突然想到,这并不是一个不常见的使用场景,所以我查看了 PostgreSQL 的网站,看看他们是否有解决方案——事实上,他们列出了有多种工具可以完成这项工作。希望其中一个对你有用。

相关内容