Oppure

Loading
09/10/14 9:28
campello.davide
Buongiorno a tutti,
devo realizzare un semplice script sh linux e ho questo problema:

in una variabile ho un testo ababstanza lungo, ad esemio questo:

</param-value></params></operation><error code="ERR-M001"><msg>errore prova</msg></error></operation-result>


che è il risultato di una chiamata curl.

Io devo estrarre e stampare a video solo ERR-M001, che è il codice di errore e che cambia di volta in volta a seconda appunto dell'errore.
Come posso fare?

Grazie!
aaa
09/10/14 9:38
D@vide
aaa
09/10/14 11:40
campello.davide
Grazie :)
appena risolvo posto la soluzione
aaa
09/10/14 12:20
ZioCrocifisso
Se il codice che vuoi ottenere si trova sempre sull'attributo code di <error>, non c'è bisogno di parsare l'XML, puoi usare sed e le espressioni regolari:
curl ... | sed -n '/error/s/.*<error [^>]*code="\([^"]*\)".*//p'
aaa
09/10/14 12:36
campello.davide
Grazie mille, è quello di cui avevo bisogno!
ultima cosa: come posso mettere il codice di errore che estraggo in una variabile?

Grazie!
aaa
09/10/14 13:49
ZioCrocifisso
Puoi assegnare un valore a una variabile con:
variabile=valore

Per ottenere una stringa contenente lo standard output di un comando, si usa $(comando) o `comando` (le differenze tra i due sono minime). Dunque:
variabile=$(comando)
aaa
09/10/14 13:56
campello.davide
Fantastico!
grazie mille!

ciao :)
aaa