Batch Logfiles durchsuchen

.point

Lieutenant
Registriert
Mai 2006
Beiträge
863
Hallo,

ich arbeite unter Unix (Solaris10) und habe ettliche Logfiles. Ich möchte diese Logfiles nach Usern durchsuchen.

User sehen wie folgt aus:
G1234
G123456
G4443
G222223

Er fängt immer mit einem großen "G" an und hat entweder 4 oder 6 zahlen dahinter.

Wie kann ich das logfile am einfachsten nach Usern durchsuchen und diese in eine Ausgabedatei packen?

Geht das mit "grep" alleine?

Über Ratschläge würde ich mich freuen.

mfg,
faulbaer
 
Jo geht mit grep:

grep G1234 file.log

listet alle Zeilen wo "G1234" auftaucht.

Um dann die Zeile noch zurechtzuschneiden, kannst Du das per pipeline weiterleiten:

grep G1234 file.log | awk -F ";" '{print $1}

das trennt die Zeile bei dem ersten ";" und gibt den vorherigen Wert aus

Das ganze bezogen auf bash-shell. Leider habe ich keine solaris-Erfahrung, denke aber die shell sollte dort auch verfügbar sein
 
Das Problem ist, dass ich mehrere hundert User habe und nicht alle Namen kenne.

Ich weiß nur, dass sie mit "G" beginnen und entweder 4 oder 6 zahlen haben. Ich brauche also eine allgemein Suchmethode

ICh suche sowas in der Art
Code:
**Pseudocode**

grep 'G%4num' file.log > ausgabe.txt // Gibt mir alle Namen mit G und 4 Ziffern aus (z.B. G2223, G1234...)
grep 'G%6num' file.log > ausgabe.txt // Gibt mir alle Namen mit G und 6 Ziffern aus (z.b. G233455, G123234...)
 
Etwas spät, aber evt brauchst Du es ja noch:

grep G[0-9] file.log > ausgabe.txt

Findet alle Zeilen welche mit G gefolgt von Zahlen von 0-9

Leider ist mir entfallen, wie man die Anzahl der Zeichen in einer Gruppierung beschränken kann...
 
Ich bin mir nicht 100prozenting sicher aber kann bash nicht auch regex? Dann kannste dir doch einfach n regex bauen das danach sucht. so in der art:

grep G[0-9]{4,6} file.log > ausgabe.txt

BTW heisst es nicht bash? Is batch nicht windows o.O
 
Zurück
Oben