Ваша команда sed
ничего не изменит, поскольку в вашем файле нет строки, начинающейся со строки jvmRoute
.
Синтаксический анализ XML должен выполняться с помощью анализатора XML.
XMLStarlet — хорошая команда, -синтаксический анализатор строк:
$ xml ed -u '//Engine/@jvmRoute' -v 'VALUE10' server.xml >server-new.xml
Это изменит значение атрибута jvmRoute
всех узлов Engine
на строку VALUE10
и сохранит полученный XML в server-new.xml
.
Чтобы изменить значение только для узла Engine
, который имеетdefaultHost="localhost"
:
xml ed -u '//Engine[@defaultHost="localhost"]/@jvmRoute' -v 'VALUE10' server.xml >server-new.xml
XMLStarlet доступен по адресу http://xmlstar.sourceforge.net/, но сначала проверьте свой менеджер пакетов. Иногда исполняемый файл XMLStarlet называется xmlstarlet
, а не xml
.
Это автозагрузка модулей Linux в действии, grub2-install
пытается монтировать многие типы файловых систем, что заставляет Linux загружать модули для их реализации.