awk? Hilfe!

2009-02-06 16:07

Momentan arbeite ich auf einem Unix-Server. So weit, so gut. Vieles, was ich durch meine Linux-Benutzung gelernt habe, kann ich dort weiter benutzen. Die Umstellung ist meines Erachtens nach minimal, aber doch vorhanden.

Nun bekam ich die Aufgabe, dass ich Logdateien auswerten soll. Ein Logeintrag geht dabei aber über mehrere Zeilen und ich sollte das ganze später in Art einer CSV-Datei ausgeben.

Da nicht sicher gestellt ist, dass sich auf jeder Maschine Perl findet, sollte ich das ganze mit Mitteln der Shell versuchen, vorallem mit sed und awk. Mit beiden habe ich noch nicht gearbeitet, aber ich habe mich in das Thema eingelesen und meinte auch, dass ich es verstanden hatte. Ich habe mir also schonmal einen Entwurf gemacht, wie mein Programm vorgehen soll und wollte das nun in die Tat umsetzen. Bei der Betrachtung der Log-Dateien war mir aufgefallen, dass RegExp dabei unersetzbar waren. Kein Problem, schliess beherrscht awk das! Oder... sollte beherrschen!

Da es keine zeitkritische Aufgabe war, habe ich wirklich seeeehr viel versucht, mich durch Foren gegraben, manpages und Tutorials gelesen. Aber es half nicht. Awk wollte einfach keine RegExp annehmen. Mein erster Gedanke war ja, dass die RegExp nicht gültig sei. Aber Proben mit grep brachten mir dann doch das erhoffte Ergebnis - es liegt nicht an der RegExp. Ich hab mir dann nicht weiter helfen können, als dass ich meinen Betreuer um Rat gefragt habe. Der hat sich mein Konstrukt angeschaut und war ebenfalls der Meinung, dass es nicht an der RegExp lag. Also haben wir versucht einen Fehler zu finden, konnten aber keinen entdecken.

Das Ende vom Lied war dann, dass ich das ganze mit Perl lösen durfte, was nach ca. 45min fertig war. Ich mag Perl. Es ist schnell, vielseitig und einfach in der Anwendung :)