Thread Suchmuster finden, Zeile und Folgezeile mit ausgeben
(12 answers)
Opened by korkak at 2013-07-10 13:43
Hallo korkak,
das hier: Code: (dl
)
perl -nE "print if /morgenstund/ ? $c=2 : --$c > 0" macht das, was Du ursprünglich haben wolltest, sehr elegant. (Habe ich doch gesagt, dass noch etwas schöneres kommt ;-) Was in Deiner Interpretation noch fehlt, ist das erste if, welches die eigentliche Prüfung macht, ob die Zeile ausgegeben werden soll oder nicht. Das besondere an Raubtiers Lösung ist ja gerade die Verschachtelung der beiden konditionalen Operationen. Also, zuerst die innere Bedingung mit $ ::
Dann die äußere Bedingung mit if:
Und dann würde ich auch noch die letzte Feststellung korrigieren: Der Trenner wird dann ausgegeben, wenn $c genau 0 ist, denn 0 ist in Perl false. In den nächsten Zeilen wird SUCHWORT ja vielleicht auch nicht gefunden, dann wird $c eine (immer weiter wachsende) negative Zahl und somit nicht mehr false sondern true. HTH Grüße payx |