
Мне нужно очистить очень большой CSV, в котором ошибочно экранированы двойные кавычки ( \\"
вместо \"
). Как заменить все экземпляры
\\"
\\\"
\\\\"
.....
с \"
или только с пространством?
Поскольку это так, \
я задал этот вопрос, чтобы не усугублять ситуацию.
решение1
Этого должно быть достаточно:
sed 's/\\\\*"/\\"/'
Это заменяет обратную косую черту ( \\
), за которой следует любое количество обратных косых черт ( \\*
) и двойную кавычку ( "
), на обратную косую черту, за которой следует двойная кавычка ( \\"
). Используйте sed 's/\\\\*"/\\"/g
' для замены всех вхождений в строке.
решение2
Альтернативный вариант, если вы sed
поддерживаете -E
опцию расширенных регулярных выражений (здесь не учитывается количество обратных слешей):
sed -E 's/[\]+"/\\"/g' file