Durchsuchungsbefehl! grep
Allgemeines | Funktionsweise | Anwendungsgebiet | Vor-, Nachteile | Verwandte | Kommandoaufbau | Beispiele
Was für Ausdrücke ... Regular Expressions
Reguläre Ausdrücke

Beispiele (grep)

  • grep 'textmuster' datei
    Suche nach textmuster in datei
  • grep 'textmuster' datei1 datei2
    Suche nach textmuster in datei1 und datei2
    Für diesen Fall funktioniert auch grep 'testmuster' datei*, sofern keine Dateien im Verzeichnis liegen, die mit "datei" anfangen und nicht durchsucht werden sollen
  • grep 'testmuster' datei1 datei2 > ergebnisdatei
    siehe voriges Beispiel, Ausgabe aber in Datei ergebnisdatei, nicht auf Standardausgabe
  • grep 'testmuster' *
    Suche nach testmuster in allen Dateien des aktuellen Verzeichnisses

  • grep 'M[ae][iy]er' datei
    Suche in datei nach verbreiteten Schreibweisen von Maier - es werden aber auch Zeichenketten als gültig erkannt, die Meierei oder RMeyer lauten
  • grep '.ier' datei
    Sucht nach Zeichenketten, die ier enthalten, also z.B. hier, Bier, aber auch Stiere
  • grep -i '^f' datei
    grep '^[fF]' datei
    Suche nach Zeilen in datei, die mit s oder S beginnen
  • grep 'a1*' datei
    Suche nach Zeichenketten, die a, a1, a11, a11...1 lauten
  • grep '^Exakte Zeichenfolge einer Zeile$' datei
    grep -x 'Exakte Zeichenfolge einer Zeile' datei
    Sucht in datei nach Zeilen, die nur Exakte Zeichenfolge einer Zeile enthalten
  • grep '^[0-9][0-9]*$' datei
    Suche nach Zeilen in datei, die nur Ziffern enthalten oder leer sind
  • grep 'a[bc]+d' datei
    Suche in datei nach Zeichenketten, die mit a anfangen, danach mindestens ein b oder c haben und mit "d" aufhören
  • grep 'E\.T\.' datei
    Sucht in datei nach E.T.

  • grep -E -n 'Medieninformatik|Informatik' datei1 datei2
    Suche in zwei Dateien nach zwei Suchmustern - entspricht dem egrep:
    egrep -n 'Medieninformatik|Informatik' datei* in diesem Fall wieder alle Dateien, deren Name mit datei beginnt

  • grep '-V' datei und grep -e '-V' datei liefern unterschiedliche Ergebnisse, Grund: - wird von der Shell anders interpretiert, als vorgesehen; die erste Variante gibt die Versionsinformationen von grep aus, die zweite Version sucht in datei nach der Zeichenkette -V
  • Mini-Editor: grep -v '^$' > testtemp liest die Standardeingabe und gibt das Ergebnis in testtemp; es wird alles, außer einer Leerzeile, in die Datei geschrieben

  • grep 'Benutzername' /etc/passwd
    Auswertung der passwd auf dem Server, Suche nach Benutzer
  • grep '^[^:]*::' /etc/passwd
    Sucht nach Benutzern ohne Passwort
  • grep -c '^$' *.c
    Suche Leerzeilen in C-Programmen und gib Anzahl aus
    Wenn allerdings nur eine Datei im Verzeichnis ist, so wird der Dateiname nicht mit ausgegeben - verhindern kann man das, indem man ein Pseudo-Datei mit durchsucht, und zwar /dev/null:
    grep -c '^$' *.c /dev/null
    Dieser Befehl eignet sich auch, um "falsche" von "richtigen" Zeilenumbrüchen zu unterscheiden, also Zeilenumbrüche, die UNIX wirklich also solche auffast
    Kombination mit -n gibt allerdings nur die Anzahl der Leerzeilen wieder
  • grep '\(....\).+\1' datei
    Suche nach Zeilen, in denen ein Wort mit 4 Buchstaben doppelt vorkommt, jedoch nicht unmittelbar hintereinander

  • ls -l | grep 'datei'
    Gibt Information zu datei aus - sinnvoll, wenn man den Namen der Datei wei&szilig;
  • ls -l | grep '^.r..r..r..'
    Sucht im aktuellen Verzeichnis (in der Auflistung) nach Dateien, Ordnern, Links, die alle Benutzer lesen können
  • ls- l | grep '\.c|.txt$'
    Sucht im aktuellen Verzeichnis (in der Auflistung) nach C-Programmen und txt-Dateien
  • ls -l | grep '^d'
    Suche im aktuellen Verzeichnis nach Unterverzeichnissen
  • ls -l | grep '.*/'
    Sucht im aktuellen Verzeichnis nach Links
  • cat datei | grep -n '.*'
    Zeilen mit Nummern versehen
  • who | grep '^s'
    listet alle am Computer (z.B. Server) angemeldeten User mit erstem Buchstaben des Namens = s auf (an der TFH also in der Regel die Studenten - um dort ein noch exakteres Ergebnis zu bekommen, kann man who | grep '^s[0-9]' verwenden)
  • who | grep -v -c '^$'
    Anzahl der eingeloggten User auf dem Computer (z.B. Server)
  • du | grep '\.kde2'
    listet alle Zeilen auf, die .kde2 enthalten, demnach : Verzeichnisse, Dateien, Links; wenn nur die .kde2-Verzeichnisse gesucht werden, so kann man du | grep '\.kde2\/' verwenden)
Copyright Christina Scholz, Monika Kapper, Mario Pehle - 2002
Copyleft auch Christina Scholz, Monika Kapper, Mario Pehle - 2002