717768

Kommandozeile: Listen mit "find" filtern

In einer umfangreichen Logdatei interessieren Sie nur jene Zeilen, die einen bestimmten Eintrag enthalten - etwa eine IP-Nummer. Daher möchten Sie die Logdatei so filtern, dass nur die maßgeblichen Angaben übrig bleiben. Auf der Kommandozeile können Sie mit dem Befehl "find" eine Textdatei zeilenweise nach einem Suchbegriff durchgehen und das Ergebnis in eine neue Logdatei umleiten. PC-WELT zeigt Ihnen, wie es funktioniert.

Anforderung

Einsteiger

Zeitaufwand

Mittel

Problem:

In einer umfangreichen Logdatei interessieren Sie nur jene Zeilen, die einen bestimmten Eintrag enthalten - etwa eine IP-Nummer. Daher möchten Sie die Logdatei so filtern, dass nur die maßgeblichen Angaben übrig bleiben.

Lösung:

Auf der Kommandozeile können Sie mit dem Befehl "find" eine Textdatei zeilenweise nach einem Suchbegriff durchgehen und das Ergebnis in eine neue Logdatei umleiten. Angenommen, Sie möchten aus der Datei D:\Access.LOG alle Zeilen auslesen, die die Zeichenkette "192.168.20.222" enthalten, dann geben Sie in der Eingabeaufforderung folgenden Befehl ein:

find "192.168.20.222" D:\Access.LOG >D:\Filter.LOG

Die resultierende Textdatei FILTER.LOG listet dann alle Zeilen auf, die an irgendeiner Stelle die gesuchte Zeichenkette "192.168.20.222" aufweisen. Mit dem Parameter /v können Sie bei Bedarf den Filter umdrehen - dann erhalten Sie alle Zeilen, die die angegebene Zeichenfolge nicht enthalten.

Nach mehreren angegebenen Zeichenketten auf einmal lässt sich eine Datei mit "find" nicht durchsuchen, hier stößt der Befehl schon an seine Grenzen. Sie müssten hierfür mehrere Durchgänge verwenden, um eine Datei nach ebenso vielen Begriffen zu filtern. Windows 2000 und XP bieten für diese Aufgabe den Befehl "findstr" an. Das folgende Kommando gibt alle Zeilen aus, die "Huber" oder "Meier" enthalten:

findstr "Huber Meier" D:\Namen.TXT >D:\Filter.TXT

Unter Windows 95/98/ME benötigen Sie für diese Aufgabe ein geeignetes Kommandozeilen-Tool, etwa das von Unix bekannte Open-Source-Programm Grep , das auch als Win32-Anwendung vorliegt.

Der Vorteil: Wenn Sie die nicht ganz einfache Syntax einmal erlernt haben, steht Ihnen damit ein mächtiges Werkzeug zur Verfügung. Portierungen gibt es für fast alle Betriebssysteme, während "find" und "findstr" auf die Windows-Welt beschränkt sind.

0 Kommentare zu diesem Artikel
717768