How to use variables in a command in sed?
This might work for you:
sed 's|$ROOT|'"${HOME}"'|g' abc.sh > abc.sh.1
Say:
sed "s|\$ROOT|${HOME}|" abc.sh
Note:
- Use double quotes so that the shell would expand variables.
- Use a separator different than
/
since the replacement contains/
- Escape the
$
in the pattern since you don't want to expand it.
EDIT: In order to replace all occurrences of $ROOT
, say
sed "s|\$ROOT|${HOME}|g" abc.sh
This may also can help
input="inputtext"
output="outputtext"
sed "s/$input/${output}/" inputfile > outputfile