Im Terminal mit "grep" nach mehreren gleichen zeichen in textdatei suchen?

Jetmamfx

Lieutenant
Registriert
März 2010
Beiträge
834
Hallöle,

ich habe ein Problem, und zwar:

Wenn ich im Terminal mit grep nach einem wort mit z.B. drei 'r' suche, wie Radierer(groß oder klein ignorieren) und dabei nur weiss das das wort drei 'r' hat, dann finde ich nur den gleichen Buchstaben aufeinanderfolgend und nicht in einem Wort durch zechen(buchstaben) getrennt.

Wenn ich : grep -i k\{3\} eingebe, finde ich nur aufeinanderfolgende r, also z.B. rrrr.
Aber ich will das wort Radierer mit 3 nichaufeinanderfolgenden r's finden.

Wie mache ich das?

Ich hab es schon gegooglet, nur hat da keiner ein soches Problem, weder eine Lösung.
 
sowas halt:
Code:
r[^r\s]+r[^r\s]+r[^r\s]*

Du sagst finde ein r gefolgt von einem nicht-r :) Das kannst du so oft wiederholen wie du willst. Feinheiten sind dann halt: Beginnt das wort mit einem r? hört es auf mit einem r? aber dabei viel spass beim knobeln

Und bevor du mit der Shell rumhantierst - hier ein Link zu einer webbasierten version:
http://regexp.uli-staerk.de/
 
habe gerade keine Testumgebung oder so zur hand aber würde mal sagen grep -i '*r*r*r*' . Wie gesagt ist so jetzt das erste was mir in Sinn kommt.
 
Damit gibt er dir nur die Zeilen aus die genau 3x r enthalten.
Code:
cat DATEINAME | while read line; do if [ $(echo $line |grep -o -i "r"|wc -l) -eq 3 ]; then echo "$line"; fi; done
 
Zurück
Oben