(Eu sei que o título é ruim, já que é específico para o meu caso)
Eu tenho tentado fazer um roteiro por um longo tempo agora. Eu tentei muitos métodos diferentes, mas o que eu quero fazer é editar um arquivo xml e substituir algo que está dentro de uma das tags. Este é o meu script:
while read line; do
if [[ "$line" == *"<Valuec=\"0\">"* ]]
then
~/bin/nn4 Decrypt1 "$line" | sed 's/^/\<Valuec=\"0\"\>/g;s/$/\<\/Valuec\>/g'
fi
done <"$1"
nn4
remove as tags, descriptografa o conteúdo e o comando sed
recoloca as tags.
Aqui está a entrada
<string>
<Id>1</Id>
<file>file.txt</file>
<Valuec="0">982498as9adhfsdf</Valuec>
</string>
<string>
<Id>2</Id>
<strStringCaption>file2.txt</strStringCaption>
<Valuec="0">2389aHASDasd</Valuec>
</string>
No entanto, isso, é claro, apenas exibe as linhas que são editadas. Parece algo assim:
<Valuec="0">decryptedstring</Valuec>
<Valuec="0">decryptedstring2</Valuec>
No entanto, quero que seja assim:
<string>
<Id>1</Id>
<file>file.txt</file>
<Valuec="0">decryptedstring</Valuec>
</string>
<string>
<Id>2</Id>
<strStringCaption>file2.txt</strStringCaption>
<Valuec="0">decryptedstring2</Valuec>
</string>