Re: regelparen verwijderen
Op 2014-03-02 om 16:22 schreef Geert Stappers:
> Op 2014-03-02 om 13:17 schreef Wouter Verhelst:
> > Op zondag 2 maart 2014 12:50:40 schreef Geert Stappers:
> > >
> > > Dus dat "kopregels" met "Processing data recordnummer" niet getoond
> > > worden als de processing is mislukt. De regels met "Processing failed"
> > > zijn ook niet nodig.
> > >
> > > Met sed en/of awk krijg ik het niet voormekaar.
> >
> > Met awk zou dat toch moeten lukken, en is redelijk simpel:
> >
<knip/>
> >
> > Wat mist nog: "Setup info" en "Final statistics". Dat lijkt een mooie oefening
> > voor de lezer ;-)
> >
>
> Gelukt.
Nog bedankt voor de tip (en de uitdaging)
> #!/usr/bin/awk -f
> BEGIN {
> state = "loud";
> }
State machine krijgt zijn begin waarde
> /Processing data/{
> header = $0 ;
> state = "silent" ;
> }
De header wordt bewaard
> !/Processing failed/ && state == "silent" && !/Processing data/ {
Niet de foutmelding, we zwijgen nog en niet een nieuwe header.
> print header ;
> state = "goloud" ;
> }
Eenmalig de bewaarde header afdrukken
> !/Processing failed/ && state == "goloud" && !/Processing data/ {
> state = "loud" ;
Deel twee van het eenmalig afdrukken.
> }
> !/Processing failed/ && state == "loud" {
> print $0 ;
Andere regels dan "failed" afdrukken.
> }
> # l l
>
> Toelichting in de follow up.
In de bijlage het awk script en test materiaal.
Doe er je voordeel mee.
Groeten
Geert Stappers
--
Leven en laten leven
#!/usr/bin/awk -f
BEGIN {
state = "loud";
}
/Processing data/{
header = $0 ;
state = "silent" ;
}
!/Processing failed/ && state == "silent" && !/Processing data/ {
print header ;
state = "goloud" ;
}
!/Processing failed/ && state == "goloud" && !/Processing data/ {
state = "loud" ;
}
!/Processing failed/ && state == "loud" {
print $0 ;
}
# l l
Setup info foo
Setup info bar
Processing data 4
Processing failed
Processing data 5
Result: asdfadfader
Result: asdfsdeweradf
Processing data 6
Processing failed
Processing data n+4
Result: asdfadf
Result: asdasferqwe
Result: askjkqerqr
Processing data n+5
Processing failed
Final statistics
Reply to: