ich eine XML-Datei, die eine Reihe von Einträgen wie folgt hat:awk: Pattern-Substitution in einer Datei basierend auf einer Eingabe von einer anderen Datei
<attr name="trajectory" value="nodo2"/>
Was ich tun möchte, ist das Wertfeld in jedem ersetzen Eintrag der Datei durch einen Eintrag der Form „nodoX“, wobei X sollte aus einer zweiten Datei gelesen werden, das eine Liste von Zahlen enthält, zB „file2“ enthält:
4
8
67
52
In diesem Fall meine verarbeiteten XML-Datei hätte die vorherigen Einträge ersetzen müssen durch:
<attr name="trajectory" value="nodo4"/>
...
<attr name="trajectory" value="nodo8"/>
...
<attr name="trajectory" value="nodo67"/>
...
<attr name="trajectory" value="nodo52"/>
...
Derzeit mit dem folgenden Befehl awk Ich versuche, aber es funktioniert nicht:
awk '/"trajectory"/ {if (getline < "file2") {x=$1; sub(/"nodo2"/,"\"nodo"x"\"")}}1' $XML_INPUT_FILE > $XML_OUTPUT_FILE
Könnte jemand die richtige Art und Weise beraten diese in awk zu erledigen?
Dank
Daniel
Danke! Es wirkt wie ein Zauber. –