This should be what you need:
- Using double quotes to enclose the
sed
command,
- so that you are free to use single quotes in it;
- escape backticks to avoid the expansion.
sed "s/user='mysql'/user=\`whoami\`/g" yourfile
I've intentionally omitted the -i
option for the simple reason that it is not part of the issue.
To clarify the relation between single quotes and escaping, compare the following two commands
echo 'I didn\'t know'
echo 'I didn'\''t know'
The former will wait for further input as there's an open '
, whereas the latter will work fine, as you are concatenating a single quoted string ('I didn'
), an escaped single quote (\'
), and another single quoted string ('t know'
).