Se si desidera sostituire una parola chiave con una stringa utilizzando sed, sed si impegna a fondo per interpretare la stringa di sostituzione. Se la stringa sostitutiva sembra avere caratteri che sed considera speciali, come un carattere "/", fallirà, a meno che, naturalmente, tu abbia inteso che la stringa sostitutiva abbia caratteri che dicono a sed come agire.
Ex:
VAR="hi/"
sed "s/KEYWORD/$VAR/g" somefile
C'è un modo per dire a sed di non provare a interpretare la stringa di sostituzione per caratteri speciali? Tutto quello che voglio è essere in grado di sostituire una parola chiave in un file con il contenuto di una variabile, indipendentemente dal contenuto.
sed(1)
interpreta solo ciò che ottiene. Nel tuo caso, lo ottiene tramite un'interpolazione shell. Credo che non puoi fare quello che vuoi, ma controlla il manuale. So che in Perl (che rende una sed
sostituzione accettabile , con espressioni regolari molto più ricche) puoi specificare che una stringa deve essere presa letteralmente, di nuovo, controlla il manuale.
sed
e farli non essere speciali, basta sfuggirli.VAR='hi\/'
non dà questo problema.