文字列をエスケープされた引用符を含む他の文字列に置き換えます。
echo "replace FOO" | sed -e "s~FOO~test\\\"test~g"
私が期待したのはreplace test\"test
。代わりに私はそれを見たreplace test"test
。
sed
エスケープシーケンスをどのように含めることができますか?
ベストアンサー1
バックスラッシュは二重引用符内のエスケープ文字と代替文字ですsed
。だから、sedはそれが何を意味するのかを知ることができ"\\\""
ます\"
"
一重引用符を試してください。
echo "replace FOO" | sed -e 's~FOO~test\\"test~g'
または二重エスケープ:
echo "replace FOO" | sed -e "s~FOO~test\\\\\"test~g"