egrep zwei gleiche wörter suchen
- penthesilea
- Beiträge: 147
- Registriert: 19.02.2003 23:51:24
- Wohnort: Ulm
egrep zwei gleiche wörter suchen
Hallo Leuts,
ich habe ein Problem, ich soll mittels egrep zwei gleiche Wörter in einer Zeile einer Datei finden.
Ich versteh gar nicht wie das funkionieren soll, da ich das mit einem regulären Ausdruck gar nicht machen kann. egrep kann ja scheinbar erweiterte reguläre Ausdrücke. Aber was sind erweiterte reguläre Ausdrücke?.
hmm und die manpage hilft mir da auch nicht weiter.
Vielen Dank schonmal im vorraus,
penthesilea
ich habe ein Problem, ich soll mittels egrep zwei gleiche Wörter in einer Zeile einer Datei finden.
Ich versteh gar nicht wie das funkionieren soll, da ich das mit einem regulären Ausdruck gar nicht machen kann. egrep kann ja scheinbar erweiterte reguläre Ausdrücke. Aber was sind erweiterte reguläre Ausdrücke?.
hmm und die manpage hilft mir da auch nicht weiter.
Vielen Dank schonmal im vorraus,
penthesilea
- jack herer
- Beiträge: 94
- Registriert: 28.07.2003 19:48:17
Probiers mal hiermit:
Code: Alles auswählen
egrep ".*\w(.+)\w.*\w\1\w.*"
Hallo penthesilea,
reicht Dir das "Handbuch.txt" Beispiel aus http://www.linux-ag.de/linux/LHB/node46.html ,
oder ist es viel komplizierter gemeint?
Gruss fuzzy
reicht Dir das "Handbuch.txt" Beispiel aus http://www.linux-ag.de/linux/LHB/node46.html ,
oder ist es viel komplizierter gemeint?
Gruss fuzzy
- jack herer
- Beiträge: 94
- Registriert: 28.07.2003 19:48:17
Hmmh, oder eher so:
Code: Alles auswählen
egrep ".*\b(\w+)\b.*\1.*"
- penthesilea
- Beiträge: 147
- Registriert: 19.02.2003 23:51:24
- Wohnort: Ulm
Hallo,
also das Beispiel Handbuch.tex das ist nicht was ich suche. Ich brauch etwas das mir 2 gleiche Wörter findet und zwar egal welche.
Und das von jack herer funkioniert leider auch nicht. Soweit ich es verstanden habe, gibt es alle Zeilen aus, welche 2 wörter haben aber halt nicht die, welche 2 gleiche Wörter haben.
also das Beispiel Handbuch.tex das ist nicht was ich suche. Ich brauch etwas das mir 2 gleiche Wörter findet und zwar egal welche.
Und das von jack herer funkioniert leider auch nicht. Soweit ich es verstanden habe, gibt es alle Zeilen aus, welche 2 wörter haben aber halt nicht die, welche 2 gleiche Wörter haben.
Hallo penthesilea,
ich glaube das Beispiel von "jack herer" ist das was Du suchst...
Gruß fuzzy
ich glaube das Beispiel von "jack herer" ist das was Du suchst...
Code: Alles auswählen
fuzzy@sid:/tmp$ cat foo
abc def ghi
foo debian foo
1 2 3 4 5 6 7
beispiel test egrep
fuzzy@sid:/tmp$ egrep ".*\b(\w+)\b.*\1.*" foo
foo debian foo
- jack herer
- Beiträge: 94
- Registriert: 28.07.2003 19:48:17
Hallo,
eigentlich sollte es funktionieren. OK, korrekterweise müßten ".*" vor und nach \1 durch \b ersetzt werden, also so:
Was der Ausdruck sucht ist folgendes:
".*" = Beliebiges Zeichen 0 oder mehrmals
"\b" = Wortgrenze
(\w+) = alphanumerische Zeichen, ein oder mehrmals. Geklammert zum Zwischenspeichern
\1 = den zwischengespeicherten Wert nochmal finden.
Was funktioniert daran nicht?
eigentlich sollte es funktionieren. OK, korrekterweise müßten ".*" vor und nach \1 durch \b ersetzt werden, also so:
Code: Alles auswählen
egrep ".*\b(\w+)\b.*\b\1\b"
".*" = Beliebiges Zeichen 0 oder mehrmals
"\b" = Wortgrenze
(\w+) = alphanumerische Zeichen, ein oder mehrmals. Geklammert zum Zwischenspeichern
\1 = den zwischengespeicherten Wert nochmal finden.
Was funktioniert daran nicht?
- penthesilea
- Beiträge: 147
- Registriert: 19.02.2003 23:51:24
- Wohnort: Ulm