我正在尝试将 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 的网站,看看他们是否有解决方案——事实上,他们列出了有多种工具可以完成这项工作。希望其中一个对你有用。