• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Frage zu "regular expressions"

jojo2

Newbie
Ich habe ein Englisches ASCII Woerterbuch vorliegen. Da moechte ich nun mit grep Anfragen stellen. Vokale (inkl. Diphtonge wie ei ou etc.)sollen generell ignoriert werden.

Ich moechte also eine Anfrage stellen wie

(beliebige Vokale) EIN "F" oder "PH" (beliebige Vokale) EIN "N" (beliebige Vokale)

Das sollte dann z.B. "fun" auswerfen.

Wie formuliere ich eine solche Anfrage mit grep?

Best

Jojo
 

gameboy

Hacker
Hallo jojo2,

ich würde mit folgendem Ausruck an den Start gehen:

Code:
grep -iE "[aeiou]*f|ph[aeiou]*n[aeiou]*" textdatei.txt
Erläuterungen/Annahmen:
- Deine Datenbasis befindet sich im aktuellen Verzeichnis in der Datei textdatei.txt
- Die Vorkommen der Vokale sind optional. Andernfalls (jeweils mind. ein Vokal): Plus anstelle von Stern verwenden
- Groß/Kleinschreibung spielt keine Rolle (dafür sorgt -i)
- als Vokale werden nur A, E, I, O und U angesehen --> ggf. Umlaute ergänzen

Viele Grüße,
gameboy.
 

TeXpert

Guru
damit legst du dann aber fest, dass die ausgelassenen Zeichen nur aus Vokalen bestehen... wenn das ok ist gut, sonst einfach die Vokale weglassen und die passenden Worte bilden :

also fun --> beliebig + f + beliebig + n +beliebig -> .*f|ph.*n.*
 

scg

Hacker
Schau dir auch mal das an:

Beschreibung - Regular Expressions - Reguläre Ausdrücke
http://www.ag-intra.net/linux-al-regex.html
Testen regulärer Ausdrücke
http://www.linux-club.de/viewtopic.php?t=16452

(Aus unseren "Nützlichen Links")
 
Oben