Postgresql

Sed 多行替換轉義字元串

  • May 30, 2012

我正在嘗試將 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 文件)。

我突然想到這不是一個不常見的使用場景,所以我檢查了 PostgreSQL 的網站,看看他們是否有解決方案——實際上他們列出了幾個工具來完成這項工作。希望其中之一對您有用。

引用自:https://serverfault.com/questions/393791