Re: script per analisi di log
On 19/10/2012 17:08, Pierpaolo Mannone wrote:
Salve lista,
atttraverso un bash-script, 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.
in teoria dovresti usare un parser xml, però penso possa andare bene
qualcosa del genere che stampa su ogni riga ciò che è contenuto tra
<SOAP-ENV:Envelope e </SOAP-ENV:Envelope>
eliminando tutto il resto
Non ho capito perché deve processare dal basso verso l'alto... non ho
fatto nulla
Lo script vuole in input il file da processare
---8<------8<------8<---start script---8<------8<------8<---
#!/bin/bash
if [[ "$1" == "" ]] || [[ ! -f "$1" ]]; then
echo $0 nomefile.est
exit
fi
StartTag="<SOAP-ENV:Envelope"
EndTag="<\/SOAP-ENV:Envelope>"
StartChar="¹"
EndChar="²"
echo "$(cat "$1")" | tr "\n" " " | sed
"s/$StartTag/$StartChar/g;s/$EndTag/$EndChar/g;s/^[^$StartChar]*//;s/$EndChar[^$StartChar]*/$EndChar/g;s/$StartChar\([^$EndChar]*\)$EndChar/\1\n/g"
---8<------8<------8<---end script---8<------8<------8<---
Nota: ho messo l'ultima istruzione tutta su una riga, spero non venga
spezzata dalla mail... altrimenti bisogna mettere qualche \ per
spezzarla su più righe
Ciao
Davide
--
Dizionari: http://linguistico.sourceforge.net/wiki
Elenco di software libero: http://tinyurl.com/eddgj
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook
Reply to: