I need use sed into bash script, for add lines after any line numer of script with some pair of values (below work)
sed -i.bak '14i\some_text=some_text' file
But I need on script bash (sh) for expand variables (below not work)
sed -i.bak '$number_linei\$var1=$var2' $var3
Just use double quotes instead of single quotes. You'll also need to use {} to delimit the number_line variable correctly and escape the \ , too.
Another way to feed a literal text or a variable to stdin is by using here-string: $ sed 's/We/They/; s/Linux/Microsoft Windows/' <<< "We love Linux." They love Microsoft Windows. $ sed 's/We/They/; s/Linux/Microsoft Windows/' <<< $TEXT They love Microsoft Windows.
Just use double quotes instead of single quotes. You'll also need to use {}
to delimit the number_line
variable correctly and escape the \
, too.
sed -i.bak "${number_line}i\\$var1=$var2" $var3
I'd personally prefer to see all of the variables use the {}
, ending up with something like:
sed -i.bak "${number_line}i\\${var1}=${var2}" ${var3}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With