Ich stecke fest, versucht, eine Variable in einer XML-Datei zu erhöhen. Das Tag kann 100 mal oder nur zweimal in einer Datei sein. Ich versuche, einen Wert hinzuzufügen, der den Betrag mehrmals erhöht. Ich habe einen Beispielcode eingefügt, an dem ich gerade arbeite, aber wenn ich das Skript ausführe, wird nur ein Eins gesetzt und nicht weiter erhöht. Ratschläge wären toll, was ich falsch mache.Inkrementieren mit Bash
for xmlfile in $(find $DIRECTORY -type f -name \*.xml); do
TFILE="/tmp/$directoryname.$$"
FROM='><process>'
TO=' value\=""><process>'
i=0
while [ $i -lt 10 ]; do
i=`expr $i + 1`
FROM='value\=""'
TO='value\="'$i'"'
done
sed "s/$FROM/$TO/g" "$xmlfile" > $TFILE && mv $TFILE "$xmlfile"
done
Die while
Schleife war etwas, was ich den Code zu testen gerade gelegt. Es wird die <process>
einfügen, aber es wird das Inkrement nicht einfügen.
Mein Endziel:
<process>value="1"</process>
<process>value="2"</process>
<process>value="3"</process>
<process>value="4"</process>
Und so weiter, solange <process>
in der Datei vorhanden ist, es erhöhen muss.
Sehen Sie sich einen Test an: http://pastie.org/5395937 –