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