Hledám způsob, jak nahradit řetězec v souboru řetězcem, který obsahuje lomítko pomocí sed.
connect="192.168.100.61/foo"
srcText="foo.bar=XPLACEHOLDERX"
echo $srcText | sed "s/XPLACEHOLDERX/$connect"
Výsledek je:
sed: -e Expression #1, Character 32: Unknown option for `s'
Přijatá odpověď:
Použijte jiný znak jako oddělovač v s
příkaz:
printf '%sn' "$srcText" | sed "s|XPLACEHOLDERX|$connect|"
Nebo opusťte lomítka pomocí ksh93 ${var//pattern/replacement}
operátor rozšíření parametrů (nyní také podporován zsh
, bash
, mksh
, yash
a nejnovější verze busyboxu sh
).
printf '%sn' "$srcText" | sed "s/XPLACEHOLDERX/${connect////\/}/"