Pro jednoduchou a rychlou editaci hodnoty v XML souboru lze s výhodou využít prográmek xmlstarlet ze stejnojmenného balíku. Pro příklad jsem zvolil následující soubor:
<settings version="2">
<setting id="kodi_addon_instance_name">vbox</setting>
<setting id="kodi_addon_instance_enabled" default="true">true</setting>
<setting id="hostname">192.168.0.114</setting>
<setting id="http_port" default="true">80</setting>
<setting id="https_port" default="true">0</setting>
<setting id="upnp_port" default="true">55555</setting>
<setting id="connection_timeout" default="true">3</setting>
<setting id="external_hostname" default="true" />
<setting id="external_http_port" default="true">19999</setting>
<setting id="external_https_port" default="true">0</setting>
<setting id="external_upnp_port" default="true">55555</setting>
<setting id="external_connection_timeout" default="true">10</setting>
<setting id="set_channelid_using_order" default="true">0</setting>
<setting id="timeshift_enabled" default="true">false</setting>
<setting id="timeshift_path" default="true">special://userdata/addon_data/pvr.vbox</setting>
</settings>
ve kterém potřebujeme změnit hodnotu parametru hostname na 1.2.3.4
Jednoduše to lze provést následujícím příkazem:
xmlstarlet ed -P --inplace --update "settings/setting[@id='hostname']" --value 1.2.3.4 $HOME/.kodi/userdata/addon_data/pvr.vbox/instance-settings-1.xml
použité parametry:
ed- edituj-P- zachovej odsazení v původním XML--inplace- editaci proveď přímo v původním souboru--update- udělej update"settings/setting[@id='hostname']"- specifikace parametru, který se má změnit--value- nová hodnota, která se má nastavit
poslední parametr je cesta k 'editovanému' souboru.
Views: 48