linux-l: regexp
Rolf Buenning
RBuenning at t-online.de
Mo Aug 21 16:58:48 CEST 2000
Hallo,
On Sam, Aug 19, 2000 at 07:06:28 +0200, Dreger Jens Dreger wrote:
> On Sat, Aug 19, 2000 at 06:34:41PM +0100, Andre Grueneberg wrote:
[...]
> >
> > 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
Danke, aber leider funktioniert's nicht, oder ich bin zu bloed :(
Ich habe (aus Linux-Magazin) ein script 'calc', das mittels awk was
ausrechnet.
Beginnt so...
--------------
#!/bin/sh
#
case $* in
-d) PARAM=`/bin/date +%d.%m.%Y`;;
-m) PARAM=`/bin/date +%m.%Y`;;
-y) PARAM=`/bin/date +%Y`;;
-?|-h|-help) echo "calc [-d|-m|-y|<pattern>]"
echo "Berechnet Online-Zeit, Zugriffe"
echo
exit;;
*) PARAM="$*";;
^^^^^
esac
grep "$PARAM" /etc/online.txt | \
^^^^^^^^^^^^
awk \
'BEGIN { total=0 }
usw.
------------------------
Wenn ich o.g. expr an das script uebergebe, sollte er fuer diesen
Zeitraum die Auswertung ausgeben. Leider kommt immer '0' raus, und das
auch nur, wenn der Ausdruck in "" geklammert wird, sonst Fehler.
> 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:
Genau.
> perl -ne 'print if(/^17\.07\./../^23\.08\./)' datei.dat
Das funkt natuerlich.
>
>
> PS: ja, das geht natuerlich auch mit awk.
????
OK, Danke euch beiden, ich arbeite weiter 'dran.
Gruss Rolf
Mehr Informationen über die Mailingliste linux-l