Utknąłem próbując zwiększyć zmienną w pliku .xml. Tag może znajdować się w pliku 100 razy lub tylko dwa razy. Próbuję dodać wartość, która zwiększy kwotę kilka razy. Załączam pewien przykładowy kod, nad którym pracuję, ale kiedy uruchomię skrypt, będzie on umieszczał tylko jeden i nie zwiększał dalej. Porada byłaby świetna w tym, co robię źle.Przyrost z bashem
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
Pętla while
było coś po prostu umieszczone przetestować kod. Wstawi on <process>
, ale nie wstawi inkrementu.
Mój końcowy cel:
<process>value="1"</process>
<process>value="2"</process>
<process>value="3"</process>
<process>value="4"</process>
I tak dalej, dopóki <process>
jest obecny w pliku potrzebuje do przyrostu.
Zobacz test: http://pastie.org/5395937 –