• Keine Ergebnisse gefunden

Das Suchprogramm grep:

N/A
N/A
Protected

Academic year: 2021

Aktie "Das Suchprogramm grep:"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das Suchprogramm grep:

grep ist ein Unix-Programm zur Suche und Filterung vorgegebener Zeichenketten aus Dateien dient. Man definiert, wie die Zeile aussehen soll. Es wurde ursprünglich von Ken Thompson entwickelt

 Grep steht steht für global/regular expression/print. Es beinhaltet also reguläre Ausdrücke, nach denen man in Dateien suchen kann

 Es existieren zahlreiche Varianten wie egrep, fgrep

 agrep ermöglicht eine unscharfe Suche nach Textstrings (Fuzzy)

Aufruf:

 grep [optionen] Suchstring [Datei(-liste)]

vordefinierte Bereiche:

 [:alpha:] [a-zA-Z] und Sonderzeichen (ÄÖÜäöüß etc.)

 [:lower:] [a-z] und Sonderzeichen

 [:upper:] [A-Z] und Sonderzeichen

 [:alphanum:] [a-zA-Z0-9] und Sonderzeichen

 [:digit:] [0-9]

 [:space:] tab, space, CR,LF

 [:xdigit:] hexadezimale Zahlen

Ausdrücke von grep

. beliebiges Zeichen (Punkt) [ABCacZ] Merngegruppe

[A-Z] Mengengruppe

[^ABC] negierte Mengengruppe

^ Zeilenanfang

$ Zeilenende

\< steht für Wortanfang

\> steht für Wortende

\b steht Wortanfang oder Wortende ( ) Gruppe mit Alternative Oder

Wiederholungs-Operatoren: (nur mit Parameter –E) oder egrep

* 0,1,n

? 0,1

+ 1,n

{n} das vorangegangene Zeichen tritt n-mal auf

{n,} das vorangegangene Zeichen tritt n-mal oder öfter auf

{n,m} das vorangegangene Zeichen tritt mindestens n-mal und maximal m-mal auf

Parameter

-i ignore case

-n line number

-w Ausdruck als Wort

-v Negation

-s Unterdrückt Fehlermeldungen

1

(2)

Beispieldateien:

a1: abcd Abcd abccd abcccd a2: editor

$y=$x a3: abeditor

$x=3

(( abcd = 3 + a)) ((\tabcd\t= 3 +a))

a4: 12bfe.abcd drei Leerzeichen 12bFe

a5: 13f abcd 1214 y=2*(5*(x+z)) a6: havefunwertvollwer

hallo (hallo)a a7: 12345

56789 234.56 a8: 12.11.10

1.1.1 01.01.2010 11.11.abc a9: ^hallowelt

hier ein wer-wolf

hier noch ein werwerwolf

hier noch ein dritter werwerwerwolf

Beispiele:

grep 'ab' * Suche „ab“ in der Zeile

'^ab' Suche „ab“ am Anfang der Zeile '^abc' Suche „abc“ am Anfang der Zeile 'abcd$' Suche Zeile mit Ende „abcd“

'cd$' Suche Zeile mit Ende „cd“

'1[23]' Suche Zeile mit einer 1, danach eine 2 oder 3

'1[23]f' Suche Zeile mit einer 1, danach eine 2 oder 3, danach ein f '1[23][bf]' Suche Zeile mit einer 1, danach eine 2 oder 3,

danach ein b oder f

'^1[23]' Anfang der Zeile mit einer 1, danach eine 2 oder 3 '^[ae]' Anfang der Zeile mit einem a oder e

-i '^[Ae]' Anfang der Zeile mit einem A oder e, ignore case '^[^ae]' Anfang der Zeile mit NICHT einem a oder e 'b.e' Suche ein b, ein beliebiges Zeichen und ein e '\.' '. ' liefert alles

-E 'abc+' Suche “abc”, “abcc” etc. in den Zeilen, Plus ist überflüssig egrep 'abc+'

2

(3)

-E 'abc?' Suche “abc” oder “ab” in den Zeilen

-E 'abc*' Suche ab, abc, abcc, abcc. „ab“würde reichen

-E '(abc)+' Suche die Gruppe „abc“ oder abcabc, Plus ist überflüssig -E '^(ab|ed)' Am Anfang ab oder ed

abeditor und editor

-E '(ab|ed)' Suche „ab“ oder „ed“ in der gesamten Zeile egrep '[[:alnum:]]' a1 bis a6, nicht a7. [a-z0-9]

egrep '[[:alpha: ]]' a1 bis a6, nicht a7 [a-z]

egrep '[[:digit:]]' [0-9]

grep '(.*)' Suche Klammern in der Zeile grep '([^(.+)]*)' Keine innere Klammern egrep 'abcd' Suche „abcd“

egrep ' abcd ' Suche „ abcd “korrekt, aber nun mit Space an den Ende, kein Tab !!

egrep '\<abcd\>' Suche „abcd“ als Wort, tab, space, auch am Anfang, am Ende grep '\babcd\b' Suche „abcd“ als Wort, tab, space, auch am Anfang, am Ende

egrep '(wer)+' 1 bis n wer, werwer, werwerwer egrep '(wer)…..(wer)' zweimal mit genau 5 Zeichen

egrep '(wer).+(wer)' zweimal, bel. Text dazwischen egrep '(wer).*(wer)' zweimal, optionaler Text dazwischen egrep '(wer){2,}' mindestens zweimal hintereinander Hinweis:

Nicht alle Abfragen sind identisch von ihrer Suche grep 'wer-?wolf' mit oder ohne Bindestrich

Datumabfrage:

egrep '\<[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,4}\>' * a8:12.11.10

a8:1.1.1 a8:01.01.2010

egrep '\<[0-9]{1,}\.[0-9]{1,}\.[0-9]{2,4}\>' * a8:12.11.10

a8:01.01.2010

3

Referenzen

ÄHNLICHE DOKUMENTE

Aufgabe: Schreibe eine Funktion search str(), die eine gegebene Zeichenkette (to- ken) in einer Tabelle (Array) von Zeichenketten sucht und

Aufgabe: Schreibe eine Funktion search str(), die eine gegebene Zeichenkette (to- ken) in einer Tabelle (Array) von Zeichenketten sucht und

● Forderung alle Matrix-Einträge sind nicht ndegativ (non-negative matrix factorization NMF).. ● Keine Subtraktion: Rekonstruktion Orginaler Daten durch

ps -auxw dito für einige andere Unix-Varianten kill pid Prozeß mit PID pid abbrechen (wie Ctrl-C) kill -9 pid … wenn der Prozeß trotzdem nicht aufhören will  command

# oder mit grep-Befehl der die Zeilen zählt, # in denen ein bestimmter Ausdruck vorkommt ANZAHL=`grep -c &#34;@&#34; /home/praktikum/gaeste`. # Wiederhole solange Variable

Bildverarbeitung: Morphologische Filterung.. die Erosion entspricht dem Mittelwertfilter)...

void * malloc(size_t size) liefert Zeiger auf Speicherbereich der Gr¨oße size, oder NULL, wenn die Anfrage nicht erf¨ullt werden kann.. Der Bereich ist

Schreiben Sie eine Funktion, die einen gegebenen String kodiert, indem das Alphabet um n Stellen verschoben wird.. Beispiel: Wird das Alphabet um 2 Stellen verschoben, so wird aus