Sed multi-line substitui strings com escape

2

Estou tentando converter um arquivo de saída mysqldump para SQL compatível com PostgreSQL. O problema está em lidar com valores de string escapados.

Eu preciso ir de:

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

para:

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

Observe a adição do "E" antes de cada string entre aspas simples.

Como isso pode ser feito em sed? Também aberto para usar outros mecanismos de regex, desde que eu possa transmitir-los (lidando com arquivos multi-GB aqui).

    
por Kenaniah 30.05.2012 / 03:12

1 resposta

1

Ocorreu-me que este não é um cenário de uso incomum, então eu verifiquei o site do PostgreSQL para ver se eles têm soluções - e de fato eles listam várias ferramentas para fazer o trabalho . Espero que um deles funcione para você.

    
por 30.05.2012 / 03:42