誤ってエスケープされた引用符をsedに置き換える

誤ってエスケープされた引用符をsedに置き換える

\\"二重引用符がエスケープされた(間違った代わりに)非常に大きなCSVをクリーンアップする必要があります\"。すべてのインスタンスをどのように置き換えることができますか?

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

スペースがあるのでしょうか\"、それともただスペースだけがあるのでしょうか?

\混乱を加えないように、この質問をするのです。

答え1

これで十分です。

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

これにより、バックスラッシュ(\\)の後にあるバックスラッシュ(\\*)と二重引用符(")がバックスラッシュの後に二重引用符(\\")に置き換えられます。sed 's/\\\\*"/\\"/g1行のすべての項目を '。

答え2

sed正規表現拡張オプションをサポートしている場合は、他のオプション-E(バックスラッシュ数はカウントされません):

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

関連情報