find . -E -regex '...': Syntax von extended regular expressions?

D

dpr

Aktives Mitglied
Thread Starter
Dabei seit
04.04.2006
Beiträge
522
Reaktionspunkte
0
Hallo,

irgendwie komme ich mit der BSD-Syntax der extended regular expressions nicht klar.

Ein Beispiel mit GNU-find:

Code:
find . -regex '.*\.(jpg|cr2)$'

Alles im grünen Bereich. Natürlich kann man nun auch mit der groben Kelle ran und schreiben

Code:
find . \( -name "*.jpg" -o -name "*.cr2" \)

allerdings wird das bei mehreren Alternativen schnell unübersichtlich. Wie sieht die entsprechende RE für das find von OS X aus? (Nein, ich möchte den Output vom OS X-find nicht mit GNU-grep bearbeiten.)

Code:
find . -E -regex '.*\.(jpg|cr2)$'

und eine bislang eher zufällige Auswahl von Permutationen innerhalb der RE bringen nur ein find: -E: unknown expression primary. Ja, ich habe die manpage zu re_format gelesen, nur irgendwie soll es nicht sein...

Jemand eine Idee?

Danke.
 
dpr schrieb:
Jemand eine Idee?
Ja.
dpr schrieb:
Ja, ich habe die manpage zu re_format gelesen, nur irgendwie soll es nicht sein...
Auch die man-Page zu find gelesen? ;)

OK, ich bin auch d'rüber gestolpert und habe gebraucht, die Lösung zu finden. Aber eigentlich steht es in der Hilfe, wenn man auch auf die Kleinigkeiten achtet: Der Parameter -E muss vor der Pfadangabe stehen. Richtig lautet der Befehl somit
Code:
find -E . -regex '.*\.(jpg|cr2)$'

Aber manchmal sieht man halt den Wald vor lauter Bäumen nicht. ;)

Pingu
 
Pingu schrieb:
Auch die man-Page zu find gelesen? ;)
Wohl nicht exakt genug, denn ich war wohl der Meinung, find zu kennen :)

Der Parameter -E muss vor der Pfadangabe stehen. [...] Aber manchmal sieht man halt den Wald vor lauter Bäumen nicht. ;)

*klatsch* Der Wald und die Bäume. Aber mal ehrlich: Reihenfolgeabhängigkeit in der Anordnung der Switches und dann so eine spezifische Fehlermeldung. Darauf muß man kommen...

Danke Dir!
 
Zurück
Oben Unten