On 19/10/12 17:08, Pierpaolo Mannone wrote:
Salve lista,

atttraverso un bash-script,

- deve essere proprio strettamente BASH? ...

dovrei estrarre da un file di log tutte le transazioni xml ( dal tag che inizia per "*<SOAP-ENV:Envelope*" al tag che termina con "*</SOAP-ENV:Envelope>*") in modo ordinato (ovvero scorrendo il file dal basso verso l'alto)e che contengono un dato
tag, con un dato valore.

(Per "tag con un dato valore" cosa intendi esattamente?)

-La stessa transazione può essere ripetuta piu' volte all'interno del file.. e mi servono tutte. -il file di log, contiene oltre l'xml anche dei messaggi di testo del servizio.
-L'xml che si trova all'interno del file di log non è sempre validato.

...
- Se _no_ (BASH) potresti provare con Python, estrarre l'XML è abbastanza semplice, a quel punto puoi usare una libreria come lxml per fare tutto ciò che ti serve con lxml. In questo caso potresti anche crearti un xml "fittizio" e poi analizzartelo, estrarre dati ecc.

- Se _sì_ (per forza BASH) ci sono diverse strategie che dipendono da quanto è "sporco" il file dal punto di vista dell'XML... Ad esempio potresti dare un'occhiata a xmllint (che fa parte del pacchetto libxml2-utils) che ha un'opzione --recover che estrae elementi parsabili da un documento non valido, oppure impelagarti in complicate regexp come suggerito da altri

Il tutto dipende _molto_ da come è fatto il file di log e di conseguenza da quanto è ingarbugliato estrarre i tag.

Lorenzo.


--
Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a listmas...@lists.debian.org

To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/5086624a.4040...@gmail.com

Rispondere a