我想格式化一個postgres轉儲(pg_dump)以便能夠使用JDBC連接導入它。 pg_dump將包含換行符的文本字段導出爲帶有換行符的文本,因此當我稍後嘗試使用JDBC導入時,我會到達行尾並且語句失敗。在Postgres轉儲中刪除換行
我想要做的就是轉儲,通過sed
並轉義所有換行符,以便每條語句結束一條INSERT
語句。問題是我不能刪除所有換行符,但我可以刪除所有不匹配的換行符此);\nINSERT INTO
。有沒有簡單的方法來做到這一點?
更新: 樣本應該是這樣的:
INSERT INTO sometable (123, And here goes some text
with
newlines
in
it', 'some more fields');
,我期待的結果是這樣的:
INSERT INTO sometable (123, And here goes some text\nwith\nnewlines\nin\nit', 'some more fields');
讓每個INSERT
語句在一條線,字符串的換行符被轉義。
你的問題描述很混亂。你可以顯示樣本'轉儲',加上你需要作爲最終輸出(只是前或後2行)。祝你好運。 – shellter
剛剛添加了一個示例以顯示我在找什麼。 – cdecker
你最好改變你的SQL解析器,以便能夠處理跨越多行的字符文字。 –