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ê sed
suportar a -E
opção de expressões regulares estendidas (isso não conta o número de barras invertidas):
sed -E 's/[\]+"/\\"/g' file