Hallo, On Wednesday 28 February 2007 16:38:43 David Haller wrote:
Teilweise viel, -[i]regex war mit komplett entfallen. Aber immerhin gibt's -[i]regex nicht überall (s.u.) *rausred* ;)
$ find --version GNU find version 4.1
$ find --version GNU find version 4.2.28 *vergeb* :)
Das ist nicht emacs-Regex sondern "(POSIX) basic RE", das andere sind "(POSIX) Extended RE" (bzw. egrep REs, IIRC gibt's da geringe Abweichungen) ;)
Da war ich unpraezise. Find versteht unter "emacs" etwas aehnliches wie "posix-basic". $ ls -1 f.dat f.txt $ echo;for t in emacs posix-basic posix-egrep posix-extended; do echo "type=$t" echo "A:"; find . -regextype $t -iregex '.*\.(txt|dat)' echo "B:"; find . -regextype $t -iregex '.*\.\(txt\|dat\)' done type=emacs A: B: ./f.dat ./f.txt type=posix-basic A: B: ./f.dat ./f.txt type=posix-egrep A: ./f.dat ./f.txt B: type=posix-extended A: ./f.dat ./f.txt B: $ find . -iregex '.*\.(txt|dat)' $ find . -regextype posix-egrep -iregex '.*\.(txt|dat)' ./f.dat ./f.txt $ find . -regextype posix-egrep -iregex '.*\.\(txt\|dat\)' $ find . -regextype emacs -iregex '.*\.\(txt\|dat\)' ./f.dat ./f.txt $ find . -iregex '.*\.\(txt\|dat\)' ./f.dat ./f.tx
Auch das '-exec .. {} +' geht nicht mit älteren GNU finds ...
Mir ist es auch erst kuerzlich positiv aufgefallen, verwende es aber nur in Scripts von denen ich wiess, dass sie lokal bleiben, oder eben mal schnell auf dem CLI. Ein leidiges Thema sind kranke Dateinamen wie sie jetzt immer haeufiger "auftauchen". Die korrekte Behandlung von Spaces in Filenamen ist ja nur ein Punkt. Hier hat MS' PowerShell sicher ein paar Vorteile, indem sie Objekte durchreicht. Ein weiteres sind Escapes. Das hat mich schon so manchmal zu Python getrieben, speziell wenn in Parametern Hochkommas uebergeben werden muessen. Have fun Roman -- Roman Fietze Telemotive AG Büro Mühlhausen