grep und ganze wörter

Post Reply
Message
Author
rahin

grep und ganze wörter

#1 Post by rahin »

Hallo,

wie kann ich mit grep nach einem ganzen Wort suchen, bei dem der zu suchende Ausdruck nicht interpretiert wird. Also keine regex oder shell Erweiterungen benutzt.

z.B. grep -w "H*ll.o Welt"

Soll eben nach genau diesem String schuchen eben nicht das Asterisk oder den Punkt als wildcard interpretieren. Ausnahme sind natürlich die Anführungzeichen, die wegen dem Leerzeichen benötigt werden.

Problem: ich suche eine IP Adresse, aber weder

"grep -rw 1.2.3.4 *" noch "grep -rw 1\.2\.3\.4 *" finden diese, obwohl diese definitiv in mehreren Logs vorhanden ist. IRgendwie macht grep gar nix, als ob es uch Eingabe von stdin wartet :(

CheersMichael

#2 Post by CheersMichael »

Sonderzeichen müssen gequotet werden (Backslash voranstellen). Quotet man alle
Sonderzeichen, braucht man auch keine Anführungsstriche.

Code: Select all

grep -w H\*ll\.o\ Welt
gültig ist auch diese Variante

Code: Select all

grep -w 'H*ello Welt'
[1] http://www.mpi-sb.mpg.de/~uwe/lehre/uni ... shell-quot

Cheers

Michael

rahin

#3 Post by rahin »

Danke. Generelle Frage noch, weil meine man-page dazu nichts sagt: Benutzt grep shell Sonderzeichen oder regex Sonderzeichen ?

User avatar
Scory
Posts: 188
Joined: 16. Apr 2004 12:36

#4 Post by Scory »

Kann ich eigentlich nicht glauben daß die man-Page nicht sagt, ob grep Regular Expressions benutzt oder Shell-Metazeichen. Eigentlich ist es aber auch sowieso logisch, denn grep ist kein Dateiverwaltungswerkzeug, was soll es denn mit Shell Metazeichen (die zudem sehr dumm sind)?

grep benutzt Regular Expressions

Post Reply