grep

grep Suche mit Metazeichen ^ . * [ | \ $

  grep              durchsucht alle Zeilen einer Datei nach dem angegebenen
  		   Suchmuster und zeigt alle dem Muster entsprechenden Zeilen
                    auf stdout an (Filter).
                    erlaubt Metazeichen (wie ed). Damit die Metazeichen nicht
		   von der Shell interpretiert werden,  wird der Expression in
		   Apostrophs eingeschlossen.
        ^	   der Suchstring beginnt am Anfang der Zeile
        .	   ein beliebiges Zeichen
        *           eine beliebige Anzahl des unmittelbar davor stehenden Zeichens
        [ ]	        Zeichenklasse (Aufzählung) } ist nur in Verbindung mit
             		[ ein Metazeichen
                           [1357]
                           [a-zA-Z]         Alle Buchstaben (keine Umlaute enthalten)
                           [a-zA-Z0-9-]     Buchstaben, Ziffern und Bindestrich (muß
                           		   am Ende stehen)
        [^  ]       Negation der Klasse, jedes Zeichen aus den in der Klasse
             	   angegebenen Zeichen
Optionen:
   -bcilnsv
        -b          mit Blocknummer ausgeben
        -c          nur übereinstimmende Zeilen zählen (count)
        -i          Groß- und Kleinschreibung ignorieren
                                grep  -ic  '[Gg]raf'   maerchen 
        -l	   gibt den Dateinamen in dem ein Suchmuster gefunden wurde nur
		   einmal (als separate Zeile) aus
        -n	   Jede Ausgabezeile mit der Zeilennummer ausgeben, in der das
		   Suchmuster in der Datei gefunden wurde.
        -s          Fehlermeldung unterdücken, wenn Dateien nicht lesbar sind
		   (Zeilen werden durch BUFSIZE in der Grösse begrenzt)
        -v          alle Zeilen ohne Übereinstimmung (verbose)

 Achtung:	   Da die Zeichen  $ * [ ^ | . ( ) \    von der  Shell
 		   interpretiert werden, wenn sie in einer Kommandozeile stehen,
                    müssen sie durch \ maskiert
		     oder  in 'Single Quote'  eingeschlossen werden.
                   Zeichenklassen   [   ]  sind zulässig.



Beispiele : 
  ls -l | grep '^d'
               	|__Es werden von grep nur die Zeilen  selektiert, die d als
		   ersten Buchstaben am Zeilenanfang haben.
                       	=> es werden nur die Directorynamen angezeigt.

  ls -l | grep '^d' | wc -l
                    Es wird die Anzahl der Directories  ermittelt.

  ls -l | grep '^...x'
		   Es werden nur Dateien angezeigt, für die beim Owner
		   execute-Permission gegeben ist.

  grep  '^[^:]*:[^:]*:0*[12][0-9][0-9]:'  /etc/passwd
		   Es werden alle Zeilen der Passwortdatei angezeigt, bei
		   denen die UID im Bereich 100 -299 liegt.
                      [^:]    Negation der Klasse, steht für alle Zeichen ausser  :
                      [^:]*:  Erst alle Zeichen ausser Doppelpunkt in beliebiger
		             Menge gefolgt von Doppelpunkt
                      0*      Beliebige Anzahl führende Nullen (auch keine)

		   Achtung:  In der Shell erfolgt die Negation durch  [!:]



  grep '^[^:]*::' /etc/passwd 
                    Benutzer ohne Passwort finden
                     [^:]*:   Jedes Zeichen mit Ausnahme : und davon beliebig viele
                     :        gefolgt von weiterem :, d.h. das Passwortfeld ist leer.


 In einer Textdatei befinden sich Zeilen mit Steuerzeichen, die mit einem Punkt
 eingeleitet werden (z.B. Steuerzeichen  für nroff).
  .PA
  .UK
  grep '^\.UK' < textfile 
        |____________  Suchmuster beginnt am Zeilenanfang
         |____________ entwertet den nachfolgenden Punkt als Metazeichen

  cat textfile | grep -v '^\.'
             es werden alle Zeilen ausgegeben, die das Suchmuster nicht enthalten.