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 :(
grep und ganze wörter
Sonderzeichen müssen gequotet werden (Backslash voranstellen). Quotet man alle
Sonderzeichen, braucht man auch keine Anführungsstriche.
gültig ist auch diese Variante
[1] http://www.mpi-sb.mpg.de/~uwe/lehre/uni ... shell-quot
Cheers
Michael
Sonderzeichen, braucht man auch keine Anführungsstriche.
Code: Select all
grep -w H\*ll\.o\ Welt
Code: Select all
grep -w 'H*ello Welt'
Cheers
Michael
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
grep benutzt Regular Expressions