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)
|