Use an alternative separator for sed
Consider the following example of sed with shell expansion:
sed -i "s/FOO/$BAR/g" /etc/baz.conf
That would fail if $BAR
contains a path with slashes (/
) - the shell paramter expansion would add these slashes to the sed expression and make it invalid.
Instead of escaping the contents of $BAR
in these cases, we can actually use another separator instead of /
:
sed -i "s~FOO~$BAR~g" /etc/baz.conf
Of course, that doesn’t solve all theoretical problems with the sed separators, but helps a lot if the contents of $BAR
are predictable.