Substituindo aspas com escape incorreto por sed

Substituindo aspas com escape incorreto por sed

Preciso limpar um CSV muito grande, que escapou erroneamente de aspas duplas ( \\"em vez de \"). Como posso substituir todas as instâncias de

\\"
\\\"
\\\\"
.....

com \"ou apenas espaço?

Desde então, \fiz esta pergunta para evitar aumentar a bagunça.

Responder1

Isso deve ser suficiente:

sed 's/\\\\*"/\\"/'

Isso substitui uma barra invertida ( \\) seguida por qualquer número de barras invertidas ( \\*) e aspas duplas ( "), por uma barra invertida seguida por aspas duplas ( \\"). Use sed 's/\\\\*"/\\"/g' para substituir todas as ocorrências em uma linha.

Responder2

Uma alternativa se você sedsuportar a -Eopção de expressões regulares estendidas (isso não conta o número de barras invertidas):

sed -E 's/[\]+"/\\"/g' file

informação relacionada