sed を使って \ を \\\\ に置き換えたい。

sed を使って \ を \\\\ に置き換えたい。

sedを使って読もうとしました\。読むことができず、\これを4に変更したい\\\\と思います。\\\\\

答え1

一重引用符の置換では、各バックスラッシュに対して2つのバックスラッシュを使用します。

echo '\' | sed 's/\\/\\\\\\\\/'

二重引用符の置換では、シェルは各バックスラッシュを\\バックスラッシュとして解釈するため、各バックスラッシュリテラルには4つのバックスラッシュが必要です。

echo '\' | sed "s/\\\\/\\\\\\\\\\\\\\\\/"

答え2

sed 's/[\]/&&&&/'

[...]括弧内のセットの単一文字に一致する式です。各文字\はリテラルなので、エスケープする必要はありません(式の周りに一重引用符を使用する場合は、二重引用符を使用してもエスケープバックスラッシュが必要です)。 。

置換文字列の4つの文字列は、それぞれ&正規表現が一致するものに置き換えられます。

または[\]気分が変だったら、

sed 's/\\/&&&&/'

関連情報