Next: elvis
Up: Von GNU's, Muscheln und
Previous: echo
Subsections
egrep gibt alle Zeilen aus, in denen ein bestimmter
Ausdruck gefunden wird
egrep [-CVbchilnsvwx ]
[-Anzahl] [-AB Anzahl] [[-e
] Ausdruck | -f Datei]
[Datei ...]
egrep durchsucht die angegebenen Dateien (oder
die Standardeingabe) nach einem Ausdruck und gibt die
entsprechenden Zeilen aus. Der Status von egrep ist 0, wenn
der Ausdruck gefunden wurde, und sonst 1.
egrep unterscheidet sich nur in der Syntax einiger
Ausdrücke vom grep-Kommando. Als
Ausdruck akzeptiert egrep reguläre Ausdrücke mit
den folgenden Steuerzeichen:
- c
- ein einzelner Buchstabe paßt auf sich selbst
- .
- ein Punkt paßt auf jeden Buchstaben, außer auf das Zeilenende
- ?
- das dem Fragezeichen vorangehende Zeichen bzw. Muster kann
null oder einmal vorkommen
- *
- das dem Asterisk `*' vorangehende Zeichen oder
Muster kann 0 mal oder öfter vorkommen
- +
- das dem Pluszeichen `+' vorangehende Zeichen bzw. Muster
kann 1 mal oder öfter vorkommen
- |
- die durch den Operator `|' verbundenden Argumente werden
oder verknüpft
- ^
- (Caret) paßt auf den Zeilenanfang
- $
- paßt auf das Zeilenende
- \<
- paßt auf den Wortanfang
- \>
- paßt auf das
Wortende
- [Buchstaben]
- paßt auf alle
Buchstaben; dabei können einzelne Buchstaben, aber auch
Bereiche in der Form `von-bis' angegeben
werden; wenn der erste Buchstabe nach `[' ein `
^
' ist,
paßt der Ausdruck auf alle Buchstaben außer den aufgeführten
- ( )
- die Klammern fassen Ausdrücke und Zeichenketten zusammen;
außerdem wird der auf den in Klammern eingeschlossene Teil des
Musters passende Text markiert und mit einem folgenden
`\N' Ausdruck referenziert (Tag)
- \N
- referenziert die auf das in den
N-ten runden Klammern eingeschlossene Muster passende
Zeichenkette.
- \
- jedes der Sonderzeichen kann, durch ein `\'(Backslash)
eingeleitet, sich selbst suchen
- \b
- paßt auf kein Zeichen, sondern auf den Anfang oder das
Ende eines Wortes
- \B
- steht für den Raum innerhalb eines Wortes
- \w
- paßt auf alle alphanumerischen Zeichen
[A-Za-z0-9]
- \W
- paßt auf alle nicht alphanumerischen Zeichen
[
^
A-Za-z0-9]
Die Rangfolge der Operatoren ist (von der höchsten zur niedrigsten):
`(', `)', `?',
`*', `+' und `|'
Die anderen Operatoren sind mit den anderen Buchstaben gleichrangig.
- -A Anzahl
- gibt Anzahl Zeilen
Kontext nach jeder gefundenden Zeile aus
- -B Anzahl
- gibt Anzahl Zeilen
Kontext vor jeder gefundenden Zeile aus
- -C
- gibt 2 Zeilen Kontext vor und
nach jeder gefundenden Zeile aus
- -Anzahl
- gibt Anzahl Zeilen Kontext
vor und nach jeder gefundenden Zeile aus
- -V
- gibt die Versionsnummer auf die Standardfehlerausgabe
- -b
- gibt die Position jeder gefundenen Stelle mit aus
- -c
- gibt nur die Gesamtzahl der gefundenen Stellen aus
- -e Ausdruck
- sucht nach Ausdruck
- -f Datei
- Datei enthält die
Ausdrücke, nach denen gesucht werden soll
- -h
- unterdrückt die Dateinamen vor jeder Fundstelle
- -i
- ignoriert Groß- und Kleinschreibung
- -l
- gibt nur die Dateinamen mit Fundstellen aus
- -n
- gibt die Zeilennummer zu jeder Fundstelle aus
- -s
- (silent) keine Ausgabe außer Fehlermeldungen
- -v
- gibt nur Zeilen aus, die den Ausdruck
nicht enthalten
- -w
- gibt nur Zeilen aus, in denen der
Ausdruck als komplettes Wort vorkommt
- -x
- gibt nur Zeilen aus, die den Ausdruck als
ganze Zeile enthalten
Das Kommando
$ egrep -h 'sys_.*[^;]$' *.c
int sys_waitpid(pid_t pid,unsigned long * stat_addr, int options)
int sys_fork(struct pt_regs regs)
int sys_sysinfo(struct sysinfo *info)
int sys_ioperm(unsigned long from, unsigned long num, int turn_on)
int sys_syslog(int type, char * buf, int len)
int sys_ptrace(long request, long pid, long addr, long data)
int sys_pause(void)
int sys_alarm(long seconds)
$ _
liefert, im Verzeichnis /usr/src/linux/kernel ausgeführt, die
erste Näherung einer Liste aller Systemaufrufe von Linux. Es werden
alle C-Sourcen nach Zeilen durchsucht, die die für die
Funktionsnamen der Systemaufrufe typischen Buchstaben sys_
enthalten und die gleichzeitig nicht mit einem Semikolon enden.
Die beiden in diesem Beispiel verwendeten Asterisk Wildcards `*' haben
grundlegend unterschiedliche Funktion: das erste, in Hochkommata
eingeschlossene wird dem egrep-Kommando
übergeben und mit dem Ausdruck ausgewertet. Das zweite wird von der
Shell interpretiert, die daraus eine Liste aller Dateinamen mit der
Endung `.c' im aktuellen Verzeichnis erzeugt.
Mit dem Kommando
$ egrep '(wird).*\1' Handbuch.tex
erzeugt wird, dieser Teil der Eingabe also ingoriert wird.
nicht existiert, wird sie erzeugt, sonst wird sie erweitert; die
bearbeitet wird, wird ein Prozeß manchmal erst mit dem Signal
gestartet wird, kein Eintrag gefunden wird, gibt \kommando{logname}
Datei verzweigt, so wird sie überschrieben, anderenfalls wird sie
$ _
kann in der Datei Handbuch.tex nach Zeilen gesucht werden, in
denen das Wort wird doppelt vorkommt.
grep
Mike Haertel, James A. Woods und David Olson
Next: elvis
Up: Von GNU's, Muscheln und
Previous: echo
Das Linux Anwenderhandbuch
(C) 1997
LunetIX