linux-l: Re: regexp

Jens Dreger jens.dreger at physik.fu-berlin.de
Sa Aug 19 19:06:28 CEST 2000


On Sat, Aug 19, 2000 at 06:34:41PM +0100, Andre Grueneberg wrote:
> Rolf Buenning schrieb:
> 
>  RB> 18.08.2000 08:11:11 - 18.08.2000 08:16:52
>  RB> 18.08.2000 18:38:34 - 18.08.2000 18:57:03
>  RB> Kann man eine regexp-Konstruktion machen, die alle Zeilen vom (als
>  RB> Beispiel)  17.07. .... 23.08. 'grept'?
> 
> Ja, sicher...;)
> 
> /^((1[7-9]|[23].)\.07|([01].|2[0-3])\.08)\.2000/
> 
> Is ungetestet...und prüft so nur das erste Datum in der Zeile...naja, und geht 
> davon aus, dass die Einträge sauber sind.

Wenn ich die Frage mal so auffasse, dass Du alle Zeilen zwischen der
mit 17.07. und 23.08. am Anfang haben willst (die Datei also schon
sortiert ist), dann tut's ein:

	 perl -ne 'print if(/^17\.07\./../^23\.08\./)' datei.dat

Beispiel:
dreger at smart:~> seq 1 10 | perl -ne 'print if(/4/../7/);'           
4
5
6
7

Dieses /pattern1/../pattern2/ Konstrukt wird TRUE beim ersten match
von pattern1 und wird erst wieder FALSE, wenn pattern2 matched.

Gruss,

Jens.

PS: ja, das geht natuerlich auch mit awk.



Mehr Informationen über die Mailingliste linux-l