geht es auch schneller?

Linuxneuling

Linuxneuling

Tripel-As
Moin,

ich suche nach einem schnelleren Lösung. Für Webseitenstatistik muss ich nach 2 Strings suchen, das ich auch mit grep mache. Das Logfile vom Webserver hat rund 600 000 bis 1 Mio Zeilen, mit grep filtere ich nach 2 Strings in eine Datei. Leider erfasst grep ALLE Zeilen, die abc enthalten. Um genau die gewünschte Zeilen zu erhalten kann ich mit cut -d" " -f7 lösen. Jedoch wenn ich es wie folgend ausführe, dauert es ewig:

Code:
 cat 2009-10-14-grep.log | while read LINE; do if echo $LINE | cut -d" " -f7 | grep abc > /dev/null; then echo $LINE >> output_abc.log; fi; done
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

habe das problem schon mit awk wie folgend gelöst!

Code:
time awk '$7 ~ /abc/{print}' 2009-10-14-access.log > output_abc.log
 
Zuletzt bearbeitet:
Wofür war denn da die Schleife?? cut kann doch auch mehr als eine Zeile bearbeiten oder nicht?
 
Das erklärts, hab es nicht genau gelesen. Das Problem ist natürlich, dass pro Zeile drei Prozesse gestartet werden, das kann nicht performant erfolgen.
 

Ähnliche Themen

Debian Routing Problem

skript zum löschen doppelter dateien

AWK Tip gesucht

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Last mit etc/passwd anzeigen lassen

Zurück
Oben