sedを使用して、ファイル内の文字列をスラッシュを含む文字列に置き換える方法を探しています。
connect="192.168.100.61/foo"
srcText="foo.bar=XPLACEHOLDERX"
echo $srcText | sed "s/XPLACEHOLDERX/$connect"
結果は次のとおりです。
sed: -e Expression #1, Character 32: Unknown option for `s'
承認された回答:
s
の区切り文字として別の文字を使用します コマンド:
printf '%sn' "$srcText" | sed "s|XPLACEHOLDERX|$connect|"
または、ksh93の${var//pattern/replacement}
でスラッシュをエスケープします パラメータ拡張演算子(zsh
でもサポートされるようになりました 、bash
、mksh
、yash
およびbusyboxの最近のバージョンsh
。
printf '%sn' "$srcText" | sed "s/XPLACEHOLDERX/${connect////\/}/"