Zum Beispiel so:
Ich habe eine XML-Datei für meine KNX Gebäudeautomation (siehe Anhang), in der in <GroupAddress>
Tags der Name, Bus-Adresse und teilweise Datenpunkttyp als Attribute hinterlegt sind und möchte für einen gegebenen Wert für das Address
-Attribut den dazugehörigen Wert des DPTs
-Attributs in einem Shellskript abfragen.
PS: Je nach Zahl der Abfragen kann es sich lohnen die Zuordnung von Addresse und Datenpunkttypen erst mal in ein Assoziatives Array zu überführen, weil man dann nicht für jeden einzelnen Wert die XML-Datei neu parsen lassen muss (lohnt sich auf meinem System ab ca. 5 Abfragen):
1 2 3 4 5 6 7 | declare -A datatypes while IFS='=' read -d $'\n' -r addr dtps do datatypes["$addr"]="$dtps" done < <(xmlstarlet sel -T -t -m '//_:GroupAddress' -v 'concat(@Address, "=", @DPTs)' -n peter.xml) echo "${datatypes['0/2/9']}" |