Zahlenwert auslesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Zahlenwert auslesen

Beitrag von HelsAett » 15.01.2007 16:50:40

Hallo @ll

wie vervollständige ich das Script

grep 'time(ms):[0-9]' localhost_access2007-01-15.log > test7.txt

damit die Zahlenwerte hinter time(ms) nur ausgegeben werden, wenn Sie mehr als 3 stellige werte haben

thx @ll

Gruß HelsAett

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 15.01.2007 17:11:52

sollte so funktionieren:

Code: Alles auswählen

grep 'time(ms):[0-9]\{4,\}' localhost_access2007-01-15.log > test7.txt
Gruß
gms

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 15.01.2007 17:33:09

thx gms das hat meine datei von 11mb auf 2mb runtergeschraubt ich würde jetzt gerne zwei bestimmte maschinen "DNS Name oder IP" ausfiltern von 4 maschinen die dort reinschreiben
hättest du da vielleicht auch noch einen tip
bin leider kein scriptguru ;)

danke dir

Gruß HelsAett

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 15.01.2007 18:46:00

da hilft dir wahrscheinlich ein kleines Beispiel:

Code: Alles auswählen

gms@gms1:~$ echo bla1 >>x.txt
gms@gms1:~$ echo bla2 >>x.txt
gms@gms1:~$ echo bla3 >>x.txt
gms@gms1:~$ echo bla4 >>x.txt
gms@gms1:~$ grep '\(bla2\|bla3\)' x.txt
bla2
bla3
Gruß
gms

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 15.01.2007 19:47:20

Kleiner Tipp: Wenn man extended regular expressions verwendet, dann kann man sich die ganzen Backslashs sparen:

Code: Alles auswählen

grep -E '(bla2|bla3)' x.txt

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 15.01.2007 19:57:54

markus_b hat geschrieben:Wenn man extended regular expressions verwendet, dann kann man sich die ganzen Backslashs sparen:
Du wirst es wahrscheinlich nicht ganz so wörtlich, oder nur auf das obige Beispiel bezogen haben, trotzdem möchte ich hinzufügen, daß natürlich auch bei Verwendung von regular expressions, auf das richte Escapen geachtet werden muß.
z.B. hier:

Code: Alles auswählen

grep -E 'time\(ms\):[0-9]{4,}' localhost_access2007-01-15.log > test7.txt

Gruß
gms

Antworten