Batchkurs, Teil 4: Immer schön sauber bleiben mit Filtern

In diesem Teil des Batchkurses wollen wir lernen, wie die Ausgaben von Kommandozeilenbefehle weiter verarbeitet werden können.

Der Befehl

echo Hallo

gibt das Wort “Hallo” auf dem Bildschirm aus. Diese Ausgabe kann man umleiten, wie wir bereits beim Thema Umleitungen kennengelernt haben. Allerdings kann man die Ausgabe eines Befehls auch an einen sogenannten Filter übergeben. Filter sind kleine Programme, die die Ausgabe weiterverarbeiten. Um die Ausgabe zu übergeben, wird der ausgebende Befehl vom Filter durch ein Pipe-Symbol (ALTGr+<) getrennt.

Beispiele für Filter sind die Befehle

more
find
sort

So erzeugt etwa der Befehl

dir c:\ | find "Dokumente"

eine Ausgabe aller Zeilen, in denen das Wort “Dokumente” vorkommt (bei deutschen Windows XP-Versionen ist dies in der Regel der Pfad C:\dokumente und einstellungen).
Die Ausgabe des Filters lässt sich nun wiederum umleiten in eine Textdatei:

dir c:\ | find "Dokumente" >c:\dokumente.txt

Nach Ausführung des Befehls legt das System eine Datei dokumente.txt auf C:\ an (bzw. überschreibt diese, wenn sie bereits dort vorhanden war) und notiert in dieser Textdatei alle Vorkommen von “Dokumente” in der Ausgabe des Befehls “dir c:\”.

Was kann man damit nun in der Praxis anfangen?
Große Logdateien, z. B. von Webserver, manuell nach bestimmten Einträgen zu durchsuchen, kann sehr zeitaufwändig sein. Wird ihr Webserver beispielsweise von einer bestimmten IP-Adresse angegriffen (z. B. ein Botnetz) und wollen sie Details dieses Angriffs analysieren, hilft ein Befehl wie

type access.log | find "127.0.0.1" >c:\angriffe.txt

um die einzelnen Einträge des Angreifers von dem anderen Webtraffic zu trennen (für die IP 127.0.0.1 müssen sie natürlich die IP-Adresse des Angreifers einsetzen, um ein vernünftiges Ergebnis zu erhalten).

Hilfe zu den Filtern MORE und FIND erhalten sie über den Kommandozeilenbefehl

help more
help find
help sort

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Seiten

Sonstiges