sed Sostituzione usando le variabili di shell


Esempio

Variabili all'interno apici ' non vengono espansi shell compatibili POSIX, quindi utilizzando una variabile shell in una sed sostituzione richiede l'uso di virgolette " invece di apici ' :

$ var="he"
$ echo "hello" | sed "s/$var/XX/"
XXllo

$ var="he"
$ echo "hello" | sed 's/$var/XX/'
hello

Prestare attenzione all'iniezione di comando durante la valutazione delle variabili:

$ var='./&/;x;w/etc/passwd
> x;s/he'
$ echo "hello" | sed "s/$var/XX/"
sed: /etc/passwd: Permission denied

Se quanto sopra è stato eseguito come root, l'output sarebbe stato indistinguibile dal primo esempio e il contenuto di /etc/passwd verrebbe distrutto.