IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Das Kommando grep



Das Kommando grep

kurzeinfuehrung fuer den "grep" befehl zum suchen in textfiles.


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:29:13
Referenzen: man grep
Schwierigkeit: Anfänger
Ansichten: 6544x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

heute machen wir den befehl "grep". wir haben ihn schon einige male
benutzt zum suchen in text files.

man kann ihn auf 2 arten verwenden:

grep suchmuster file1.txt file2.txt file3.txt

wuerde "suchmuster" in den 3 files file1.txt bis file3.txt suchen.
oder man verwendet ihn als filter:

cat blabla.txt | grep suchmuster

wuerde das suchmuster in der ausgabe von "cat blabla.txt" oder der
ausgabe jedes anderen programms suchen.. (z.b. locate , find, fortune,
zcat oder was auch immer...)

suchmuster kann entweder eine einfache zeichenkette sein..

z.b.:

grep bla *.txt

oder eine sogenannte "regular expression":

eine regular expression waere zb.

grep "[Bb]l*[ioa]" *.txt

das wuerde in allen datein mit der endung .txt die im aktuellen
verzeichniss liegen die zeilen suchen in denen blla bllllli Blo oder
aehnliches steht.. (mit einem grossen oder kleinen B beginnen) dann
beliebig viele l (auch 0) und danach entweder ein i oder ein o oder ein
a haben.

die zeichen in [] heisst eines von denen das * heisst vom vorigen zeichen 0
oder mehrer vorkomnisse von zeichen davor.

grep "ab*c" wuerde ac abc abbbc abbbbbbbbc etc.. finden.. nicht aber abba

grep "a[bcd]e" wuerde abe ace ade finden.

grep "a[^efg]c" wuerde alle vorkommisse von a?c finden wobei ? ein
beliebiger buchstabe ausser e oder f oder g waere...

(das ^ im [ ] heisst alle buchstaben bis auf die vorkommenden..)

grep "a.b" wuerde nach allen a?b suchen. der punkt . heisst: ein
beliebiges zeichen.

wenn du nach zeichen suche willst die im grep eine spezielle bedeutung
haben dann musst diese "escapen": d.h. mit einem \ schreiben. da in der
shell \ auch escape ist eventuell dann \\\ schreiben:

grep \\\".*\\\" *.txt wuerde alle zeilen suchen die einen text in
anfuehrungszeichen enthalten..

grep "\".*\"" *.txt ebenfalls.

grep "\]" wuerde alle zeilen suchen die ein ] enthalten.

grep " [a-z][0-9][0-9]* "

wuerde alle stellen finden wo ein wort (hinten und vorne leerzeichen) ist
dass mit den buchstaben a-z beginned und dann eine zahl mit mindesten
einer oder mehr stellen hat..

es gibt dann noch grep -E (oder auch egrep was das selbe ist)

mit dem kannst dann noch kompliziertere suchmusster bauen:

egrep "a{3,5}b" wuerde alle stellen finden in den 3 bis 5 a's von eimem b
gefolgt werden...

aber das braucht man kaum.

hier noch ein paar andere NUETZLICHE switches von grep:

-i .... ignore case. gross und kleinschreibung ist egal
-5 (oder eine andere zahl) bei der ausgabe werden 5 zeilen vor und 5 zeilen
nach der gefunden stelle ausgegeben.

-c gibt die zeilen nicht aus sondern nur wie oft der suchbegriff vorkommt

-n gibt auch immer die zeilennummer an wo der suchstring vorkommt.

und dann gibt es noch:

zgrep blabla *.gz

wuerde den dext blabla in den .gz files suchen aber diese vor dem suchen
zuerst auspacken.. ist praktisch wenn man in den hilfetexten sucht:

zgrep printing /usr/share/doc/HOWTO/en-txt/*.gz

wuerde ueberall in den HOWTO documneten nach dem wort "printing" suchen.
(vorausgesetzt diese howto files liegen in diesem verzeichniss. das ist
aber bei allen distributionen unterschiedlich. aber mit locate kannst du
ja suchen wo die howtos bei dir liegen.

EXERCISES:

such dir ein verzeichniss mit moeglichst vielen text files und verwende
grep um nach interessanten woertern zu suchen.

schreiben.
(das chmod ugo+rx nicht vergessen)

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04510
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06247
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1157
Comments: 0