.
Используйте двойные кавычки, чтобы var оценивался правильно:
$ var=43
$ sed "s/.*had a little lamb.*/Mary had $var little lambs/" file
Mary had 43 little lambs
with fleece as white as
snow. Everywhere that
Mary went, the lamb was
sure to go.
См. ответ Jacob Minshall относительно .*
вместо *.
. Я написал команду sed
с нуля, поэтому не заметил ошибку в исходном коде.
Я думаю, это потому, что у вас *.
в начале, а нужно .*
Символ . означает любой символ, а символ * означает ноль или более предшествующих символов, которых нет