Saya mencari cara untuk mengganti string dalam file dengan string yang berisi garis miring dengan menggunakan sed.
connect="192.168.100.61/foo"
srcText="foo.bar=XPLACEHOLDERX"
echo $srcText | sed "s/XPLACEHOLDERX/$connect"
Hasilnya adalah:
sed: -e Expression #1, Character 32: Unknown option for `s'
Jawaban yang Diterima:
Gunakan karakter lain sebagai pembatas di s
perintah:
printf '%sn' "$srcText" | sed "s|XPLACEHOLDERX|$connect|"
Atau lepas garis miring dengan ${var//pattern/replacement}
ksh93 operator ekspansi parameter (sekarang juga didukung oleh zsh
, bash
, mksh
, yash
dan versi terbaru dari busybox sh
).
printf '%sn' "$srcText" | sed "s/XPLACEHOLDERX/${connect////\/}/"