9.2. grep, egrep, fgrep, gnu-grep, zgrep, zipgrep ================================================= Die Kunst zu suchen oder suchet so werdet ihr finden. Grep gibt es in den verschiedentsten Ausführungen und Spielarten. Die verschiedenen "greps" unterscheiden sich in Optionen und in der Funktionalität und damit in der Geschwindigkeit des Suchens. Man sollte beim Durchmustern großer Datenbestände sich das für den jeweiligen Suchvorgang passende "grep" aussuchen!!! grep - Pattern mit einfachen regulären Ausdrücken egrep - Pattern mit vollen regulären Ausdrücken fgrep - Pattern mit Strings gnu-grep - abhängig von Optionen Zusätzlich gibt es noch Scripte (zgrep, zipgrep), die den Einsatz von grep bei gepackten Files unterstützen In den verschiedenen Betriebssystemen ist oftmals unter dem gleichen Namen in verschiedenen Directories ein unterschiedliches "grep" versteckt. z.B. Solaris: /usr/bin/grep /usr/xpg4/bin/grep, /usr/local/bin/grep) |
next | back | 2017 - 1 | Fri Apr 7 14:46:39 CEST 2017 |
Allgemeine Funktionalität ------------------------- - Die Programme der grep-Familie durchsuchen Files nach Pattern und geben entweder die Zeilen, die die Pattern enthalten oder die Zeilen, die die Pattern nicht enthalten, aus. - Je nach grep-Programm oder Option können Pattern ein einfacher String, ein "einfacher" regulärer Ausdruck, ein "komplizierter" regulärer Ausdruck sein. - Die Kompliziertheit des Pattern bestimmt wesentlich die Arbeits- geschwindigkeit des "greps". - Es können mehrere Pattern spezifiziert werdem, dann werden alle Zeilen ausgegeben, bei denen irgendein Pattern matchet. - Es kann kein, ein oder mehrere Files pro Kommandoaufruf spezifiziert werden. Wenn kein File spezifiziert wurde liest grep die Daten von der Standardeingabe. Probleme bereitet die Beschreibung der Pattern in Shellumgebungen, da $, *, [, ^, |, (, ), und \ gleichzeitig Shell-Metzeichen und Elemente von regulären Ausdrücken sind. |
next | back | 2017 - 2 | Fri Apr 7 14:46:39 CEST 2017 |
SUN solaris 8 ------------- /usr/bin/grep [-bchilnsvw] limited-regular-expression [filename ...] /usr/xpg4/bin/grep [-E|-F] [-c|-l|-q] [-bhinsvwx] -e pattern_list ...| -f pattern_file ... ]|pattern [ file ... ] /usr/bin/grep /usr/bin/grep unterstützt begrenzte reguläre Ausdrücke (regexp(5)) /usr/xpg4/bin/grep Mit Option -E werden volle reguläre Ausdrücke als Pattern unterstützt. Mit Option -F werden nur feste Strings als Pattern unterstützt. Wird weder -E noch -F spezifiziert, werden einfache reguläre Ausdrücke Pattern untersützt ( regexp(5)) Optionen für /usr/bin/grep und /usr/xpg4/bin/grep: -b Gibt die Byte-Position jeder gefundenen Stelle mit aus Erstes Byte hat die Adresse 0. -c Gibt nur die Gesamtzahl der gefundenen Stellen aus -h Unterdrückt die Dateinamen vor jeder Fundstelle, wenn mehrere Files angegeben wurden -i ignoriert Groß- und Kleinschreibung -l gibt nur die Dateinamen mit Fundstellen aus, ohne Wiederholungen. -n Gibt die Zeilennummer zu jeder Fundstelle aus (erste Zeile ist 1). -s Keine Fehlermeldungen (silent) -v gibt nur Zeilen aus, die das Pattern nicht enthalten -w gibt nur Zeilen aus, die das Pattern als komplettes Wort enthalten |
next | back | 2017 - 3 | Fri Apr 7 14:46:39 CEST 2017 |
Optionen für /usr/xpg4/bin/grep -e pattern_list Spezifiziert ein oder mehrere Pattern. Die Pattern müssen durch <NL> getrennt sein. Achtung!! Pattern-Listen müssen durch Apostrophs geklammert sein. -e pattern Spezifiziert ein einzelnes Pattern. -E Unterstützung der vollen regulären Ausdrücke als Pattern. -f pattern_file pattern_file Datei enthält die Ausdrücke, nach denen gesucht werden soll. -F Unterstützung von festen Strings als Pattern, keine regulären Ausdrücke -q Quiet-Modus. Keine Ausgabe. Return-Wert 0 wenn Zeile gefunden sonst 1. -x gibt nur Zeilen aus, die das Wort als ganze Zeile enthalten Operanden file Dateiname der zu untersuchenden Datei Bermerkungen Die -e pattern_list Option hat die selbe Funktionalität wie mehrere -e pattern Mehrfache -e und -f Optionen sind erlaubt. -q Option bei mehreren Files: ein Autreten reicht für Rückkehrwert 0 Filegröße: 2 GByte Rückkehrwerte: 0 Mindestens eine Zeile gefunden 1 Keine Zeile gefunden 2 Syntaxfehler ode File nicht gefunden |
next | back | 2017 - 4 | Fri Apr 7 14:46:39 CEST 2017 |
Beispiele: bell5% /usr/bin/grep -i -n bell passwd bell5% /usr/bin/grep ^$ passwd bell5% /usr/bin/grep -v . passwd bell5% /usr/xpg4/bin/grep -E 'mbell > cbell' passwd bell5% /usr/xpg4/bin/grep -F -e 'mbell' -e 'cbell' passwd bell5% /usr/xpg4/bin/grep -E '^cbell ^mbell' passwd bell5% /usr/xpg4/bin/grep -F -w 'bell' bell5% /usr/xpg4/bin/grep -F -x 'bell' |
next | back | 2017 - 5 | Fri Apr 7 14:46:39 CEST 2017 |
SUN Solaris 2.8 --------------- /usr/bin/fgrep [-bchilnsvx] [-e pattern] [-f pattern-file] [pattern] [file ...] /usr/xpg4/bin/fgrep [-bchilnsvx] [-e pattern] [-f pattern-file] [pattern] [file ...] fgrep - fast grep. Als Pattern sind nur Strings zugelassen. Die Zeichen $, *, [, ^, |, (, ), und \ werden als Literale gewertet. /usr/xpg4/bin/fgrep entspricht /usr/xpg4/bin/grep -F Optionen: -b Gibt die Byte-Position jeder gefundenen Stelle mit aus Erstes Byte hat die Adresse 0. -c Gibt nur die Gesamtzahl der gefundenen Stellen aus -e pattern Spezifiziert ein einzelnen String (kann mehrfach auftreten). -f pattern-file Spezifiziert ein File mit Strings -h Unterdrückt die Dateinamen vor jeder Fundstelle, wenn mehrere Files angegeben wurden -i ignoriert Groß- und Kleinschreibung -l gibt nur die Dateinamen mit Fundstellen aus, ohne Wiederholungen. -n Gibt die Zeilennummer zu jeder Fundstelle aus (erste Zeile ist 1). -s Keine Fehlermeldungen (silent) -v gibt nur Zeilen aus, die den String nicht enthalten -x gibt nur Zeilen aus, die den String als ganze Zeile enthalten |
next | back | 2017 - 6 | Fri Apr 7 14:46:39 CEST 2017 |
Operanden file Dateiname der zu untersuchenden Datei /usr/bin/fgrep pattern String /usr/xpg4/bin/fgrep pattern String Filegröße: 2 GByte Rückkehrwerte: 0 Mindestens eine Zeile gefunden 1 Keine Zeile gefunden 2 Syntaxfehler ode File nicht gefunden |
next | back | 2017 - 7 | Fri Apr 7 14:46:39 CEST 2017 |
SUN Solaris 2.8 --------------- /usr/bin/egrep [-bchilnsv] [-e pattern_list] [-f file] [pattern] [file ...] /usr/xpg4/bin/egrep [-bchilnsvx] [-e pattern_list] [-f file] [pattern] [file ...] egrep - expression grep Erlaubt reguläre Ausdrücke als Suchpattern. /usr/bin/egrep Erlaubt reguläre Ausdrücke mit folgenden Einschränkungen: \( und \), \( und \), \{ und \}, \< und \> und \n Erweiterungen: 1. <Regulärer Ausdruck>+ - ein- oder mehrfaches Auftreten des Ausdrucks 2. <Regulärer Ausdruck>? - null- oder einfaches Auftreten des Ausdrucks 3. <Regulärer Ausdruck> | <Regulärer Ausdruck> | .. oder anstelle des | ein <NL> - matchet beim Auftreten eines der angegebenen Ausdücke. 4. (<regulärer Ausdruck>) /usr/xpg4/bin/egrep /usr/xpg4/bin/egrep entspricht /usr/xpg4/bin/grep -E |
next | back | 2017 - 8 | Fri Apr 7 14:46:39 CEST 2017 |
Optionen /usr/bin/egrep und /usr/xpg4/bin/egrep : -b Gibt die Byte-Position jeder gefundenen Stelle mit aus Erstes Byte hat die Adresse 0. -c Gibt nur die Gesamtzahl der gefundenen Stellen aus -e pattern_list Spezifiziert ein Liste von Ausdrücken (kann mehrfach auftreten). -f pattern-file Spezifiziert ein File mit Ausdrücken -h Unterdrückt die Dateinamen vor jeder Fundstelle, wenn mehrere Files angegeben wurden -i ignoriert Groß- und Kleinschreibung -l gibt nur die Dateinamen mit Fundstellen aus, ohne Wiederholungen. -n Gibt die Zeilennummer zu jeder Fundstelle aus (erste Zeile ist 1). -s Keine Fehlermeldungen (silent) -v gibt nur Zeilen aus, die den Ausdruck nicht enthalten /usr/xpg4/bin/egrep -x gibt nur Zeilen aus, die den Ausdruck als ganze Zeile enthalten |
next | back | 2017 - 9 | Fri Apr 7 14:46:39 CEST 2017 |
Operanden file Dateiname der zu untersuchenden Datei pattern Ausdruck Filegröße: 2 GByte Rückkehrwerte: 0 Mindestens eine Zeile gefunden 1 Keine Zeile gefunden 2 Syntaxfehler ode File nicht gefunden |
next | back | 2017 - 10 | Fri Apr 7 14:46:39 CEST 2017 |
Linux (GNU) ----------- grep,egrep,fgrep grep [-[AB] NUM] [-CEFGVabchiLlnqrsvwxyUu] [-e PATTERN | -f FILE] [-d ACTION] [--directories=ACTION] [--extended-regexp] [--fixed-strings] [--basic-regexp] [--regexp=PATTERN] [--file=FILE] [--ignore-case] [--word-regexp] [--line-reg- exp] [--line-regexp] [--no-messages] [--revert-match] [--version] [--help] [--byte-offset] [--line-number] [--with-filename] [--no-filename] [--quiet] [--silent] [--text] [--files-without-match] [--files-with-matcces] [--count] [--before-context=NUM] [--after-context=NUM] [--context] [--binary] [--unix-byte-offsets] [--recursive] [ pattern ] [ files...] Hauptoptionen -G, --basic-regexp Pattern ist ein regulärer Standardausdruck (Standard) -E, --extended-regexp Pattern ist ein erweiterter regulärer Ausdruck (fast wie egrep) -F, --fixed-strings Pattern ist eine Menge Newline-getrennter Strings (fgrep) |
next | back | 2017 - 11 | Fri Apr 7 14:46:39 CEST 2017 |
zusätzliche Optionen: -A NUM, --after-context=NUM NUM Zeilen von vorausgehendem Kontext anzeigen -B NUM, --before-context=NUM NUM Zeilen von folgendem Kontext anzeigen -C, --context[=NUM] NUM (Standard ist 2) Zeilen Kontext anzeigen, wenn nicht mit -A oder -B anderes festgelegt ist -NUM Wie --context=NUM -V, --version Versionnummer ausgeben und beenden -b, --byte-offset Byte-Offset zusammen mit Ausgezeilen anzeigen -c, --count Nur Zahl der passenden Zeilen pro Datei ausgeben, normale Ausgabe unterdrücken Mit -v, --revert- wird die Zahl der nicht passenden Zeilen ausgegeben -d ACTION, --directories=ACTION Verarbeitung von Verzeichnissen festlegen. ACTION ist 'read', 'recurse', oder 'skip'. read - lesen wie ein normales File skip - übergehen ohne Fehlernachrichten recurse - durchmustern aller Files des Directories, rekursiv - identisch mit Option -r -e PATTERN, --regexp=PATTERN PATTERN als regulären Ausdruck verwenden Sinnvoll für Pattern, die mit "-" beginnen |
next | back | 2017 - 12 | Fri Apr 7 14:46:39 CEST 2017 |
-f FILE, --file=FILE Pattern aus Datei FILE lesen -h, --no-filename Anzeige des Dateiname unterdrücken bei der Eingabe von mehreren Files -i, --ignore-case Unterschied zwischen Groß- und Kleinschreibung ignorieren. -L, --files-without-match Nur Namen von Eingabe-Dateien ausgeben, die keine Übereinstimmung enthalten. Unterdrückung der normalen Ausgabe. -l, --files-with-matches Nur Namen von Eingabe-Dateien mit Übereinstimmungen ausgeben. Unterdrückung der normalen Ausgabe. -n, --line-number Zeilennummber mit Ausgabezeilen anzeigen. -q, --quiet, --silent Alle normalen Ausgaben unterdrücken. -r, --recursive Alle Directories recursiv lesen. Wie Option -d recurse. -s, --no-messages Fehlermeldungen unterdrücken. -a, --text Keine Unterdrückung von Ausgabezeilen, die binäre Daten enthalten. Normalerweise werden binäre Files nicht durchsucht. -v, --revert-match Nicht-passende Zeilen anzeigen. -w, --word-regexp Nur Ausgabe von Zeilen, bei denen das Pattern auf ganze Wörter paßt. |
next | back | 2017 - 13 | Fri Apr 7 14:46:39 CEST 2017 |
-x, --line-regexp Nur Ausgabe von Zeilen, bei denen das Pattern auf ganze Zeilen paßt. -y Synonym für -i. -U, --binary CR-Zeichen am Zeilenende belassen (für MSDOS-Files) -u, --unix-byte-offsets Offsets ausgeben, als fehlten CR-Zeichen(für MSDOS-Files) Argumente: pattern Suchmuster file Files, die durchsucht werden sollen Rückkehrwerte: 0 Mindestens eine Zeile gefunden 1 Keine Zeile gefunden 2 Syntaxfehler ode File nicht gefunden |
next | back | 2017 - 14 | Fri Apr 7 14:46:39 CEST 2017 |
zgrep - search possibly compressed files for a regular expression zgrep [ grep_options ] [ -e ] pattern filename... Zgrep is used to invoke the grep on compress'ed or gzip'ed files. All options specified are passed directly to grep. If no file is specified, then the standard input is decom- pressed if necessary and fed to grep. Otherwise the given files are uncompressed if necessary and fed to grep. If zgrep is invoked as zegrep or zfgrep then egrep or fgrep is used instead of grep. If the GREP environment variable s set, zgrep uses it as the grep program to be invoked. For example: for sh: GREP=fgrep zgrep string files for csh: (setenv GREP fgrep; zgrep string files) |
next | back | 2017 - 15 | Fri Apr 7 14:46:39 CEST 2017 |
zipgrep - search files in a ZIP archive for lines matching a pattern zipgrep [egrep_options] pattern file[.zip] [file(s)...] [-x xfile(s)...] zipgrep will search files within a ZIP archive for lines matching the given string or pattern. zipgrep is a shell script and requires egrep(1) and unzip(1L) to function. Its output is identical to that of egrep(1). Argumente All options prior to the ZIP archive filename are passed to egrep. |
back | 2017 - 16 | Fri Apr 7 14:46:39 CEST 2017 |