Mit den Comamndline-Tools habe ich nicht immer nur Freude, auch wenn alle Optionen in der Hilfe ersichtlich sind, kommt es doch oft auf die Reihenfolge und ein paar Feinheiten an, die ich gerne vergesse. Deshalb gibt es hier ein paar Beispiele zu den oben genannten Tools.

Grep

Der Befehl dient zum durchsuchen von Dateien nach einem Text. Für die Suchpattern kann normaler Textvergleich und Regular Expressions verwendet werden.

Die von mir am häufigsten verwendeten Opdionen sind:

Eine Beispielzeile zum Durchsuchen aller .cs und .aspx Dateien, mit Schreiben in eine Datei.

grep -r --exclude-dir=.svn --include='*.{cs,aspx}' -i -n -e 'suchtext' ./ > search.txt

Die Zeichen ‘./’ stehen für den aktuellen Pfad und werden hier als Startpfad verwendet. Wenn es keine Unterverzeichnisse gibt,

kann auch ‘* ‘ für alle Dateien verwendet werden.

Suchen von Wort in Textfile:

grep 'error' error.log

Find

Dient zum Finden von Dateien und ist ein optimaler Partner von Grep. Hier finden sich auch sehr viele gute Beispiele am Ende der Man-Page.

Das von mir am meisten verwendete Kombination ist:

find . -iname "*Suchtext*"

Falls dann noch Feinheiten abgestimmt werde sollen, kann auch mittels grep ein weiterer Filter eingerichtet werden.

find . -iname "*Suchtext*" | grep filter

Find und Grep kann mit hilfe von Cygwin auch unter Windows verwendet werden.

LogParser Windows

Dieser passt hier nicht ganz hinein, da es sich hier um keinen Unix/Linux Shell Befehl handelt sondern von Microsoft kommt.

Hier ist  im Download ein Handbuch mit einer sehr genauen Beschreibung enthalten.

Der LogParser kann Text-Files mit SQL-Abfragen durchsuchen. Das ist zwar nicht immer leichter als mit grep, dafür kann aber gezielt auf eine Spalte im Ausgabefile abgefragt werden.

Felder definieren

Nur weil ein Text-File eine Struktur hat heißt das noch nicht das auch ein Header mit den Spaltennamen vorhanden ist. Diese kann aber leicht manuell in das File eingefügt werden.

Beispiel für Headerdefinition:

#Fields: field1 field2 ...

Beispiel für Abfage auf ein W3C File wie es von IIS erzeugt wird.

LogParser "select coun(*) from file.txt where field2 like '%errer%'" -i:w3c

Ob eine Verwendung von grep oder LogParser besser ist natülich für jeden selber zu entscheiden.

Links zu ausführlicheren Beschreibungen

Carpe Diem.