Только что проверил репозиторий вручную по адресу http://repos.lax-noc.com/elrepo/kernel/el6/x86_64/RPMS/, и там нет пакета с именем kernel-ml
. Возможно это опечатка и вы хотите установить пакет kernel-lt
Хередок спешит на помощь:
varin=a; varout=X
sed -f - <<_CODE_ file
s/$varin/$varout/
_CODE_
Но имейте в виду, этот подход чреват ошибками/неправильными результатами, если интерпретатор командного интерпретатора десантируется внутрь без надлежащей санитарной обработки. Возьмем, к примеру, что произойдет, если varout будет содержать символ &
или /
и т. д.
Вы можете использовать envsubst
для замены переменных в вашем скрипте нужными значениями перед запуском sed
.
$ cat script.sed
s/$varin/$varout/
s/$varout/&$varin&/
Замена строк $varin
или ${varin}
и $varout
или ${varout}
в script.sed
значениями их переменных:
$ varin='a' varout='X' envsubst '$varin $varout' <script.sed
s/a/X/
s/X/&a&/
Команда sed
, использующая замену процесса:
sed -f <(varin='a' varout='X' envsubst '$varin $varout' <script.sed) file