Metazeichen
Auch Wildcards genannt sind:
* ? ^ [ ! [ \
Metazeichen werden von der Shell expandiert und das Resultat wird als Parameter an das aufgerufene Programm übergeben.Wichtig: Die Dateinamen-Expansion erfolgt vor dem Aufruf des Programmes!
grep Suchen in Dateien
grep, fgrep und egrep sind Kommandos, die eine oder mehrere Dateien nach einem übergebenen Suchmuster durchsuchen: Zeilen die das Suchmuster enthalten werden auf Standard-Output ausgeben. Durch Umleitung oder Pipe können die Ergebnisse auch an andere Kommandos zur Weiterbearbeitung übergeben werden.
Die maximale Zeilenlänge ist 256 Zeichen.
fgrep fast global regular expression
grep global regular expression
egrep extended global regular expression
Die drei Kommandos unterscheiden sich intern durch den verwendeten Suchalgorithmus.
Aus der Anwendersicht in den Möglichkeiten Suchmuster zu definieren und in der Geschwindigkeit.
Alle grep-Formen liefern einen Returncode 0, wenn die Suche erfolgreich war
und ungleich 0, wenn keine Übereinstimmung gefunden wurde.
fgrep (fast grep, schnelle Suche)
Die Möglichkeiten wonach gesucht werden kann, sind bei fgrep gegenüber grep und egrep eingeschränkt.
Dadurch kann das Programm einen schnelleren Suchalgorithmus verwenden.
fgrep [option] [string] [file]
string enthält das Suchmuster. Werden mehrere Worte als Suchmuster
verwendet, so sind sie in Hochkommata "wort wort" einzuschliessen.
fgrep -n "Graf O" maerchen
-b | mit Blocknummer ausgeben |
-c | nur übereinstimmende Zeilen zählen (count) |
-e | sucht nach einem speziellen String der mit - beginnt |
-f fln | holt die Suchmuster aus der Datei fln |
-i | Groß- und Kleinschreibung ignorieren (ignore case nur fgrep und grep) fgrep -ic graf 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. |
-x | eXact match für die gesamte Zeile (nur fgrep) |
-v | Alle Zeilen ohne Übereinstimmung (verbose) |
Beispiele :
- ls -l /usr/users/hahn | fgrep -i log
sucht im Inhaltsverzeichnis von hahn nach allen Dateien, die 'log' enthalten.
Da log nur ein Wort ist, muss es nicht "quoted" angegeben werden.
- fgrep -ni include *.php
sucht in allen Dateien mit der Endung .php nach include (groß und Kleinschreibung) und gibt die Zeile mit Zeilennummer aus