GNU/Linux >> Linux の 問題 >  >> Linux

文字列をSedのスラッシュを含む文字列に置き換える方法は?

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でもサポートされるようになりました 、bashmkshyash およびbusyboxの最近のバージョンsh

printf '%sn' "$srcText" | sed "s/XPLACEHOLDERX/${connect////\/}/"

Linux
  1. ファイル内の文字列を置き換える方法は?

  2. Sed -i(インプレース編集)で移植性を実現するにはどうすればよいですか?

  3. Sedを使用して複数行の文字列を置き換える方法は?

  1. SedまたはExを使用してブロック(複数行コード)を新しいテキストブロック(コード)に置き換える方法は?

  2. sed のようなテキストを python に置き換えるにはどうすればよいですか?

  3. sed を使用して構成ファイルの変数を置き換える方法は?

  1. スマートクォートをLinuxsedコマンドに置き換えます

  2. sed で \r 文字を削除する方法

  3. 文字を再帰的にsedに置き換える方法は?