[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Regular Expression bei Dateiendungen mit find



On Wednesday 23 August 2006 14:51, Juergen Christoffel wrote:
> On Wed, Aug 23, 2006 at 11:38:58AM +0200, Gebhard Dettmar wrote:
> > On Tuesday 22 August 2006 16:39, Juergen Christoffel wrote:
> > > [...]
> >
> > Äh, Moment, das findet gar nichts.
>
> Doch:
>
>   touch a
>   find * -regex a
>   a
>
Stimmt

> Ich schrieb ja zuvor, Du musst "find * -op" nehmen anstatt "find . -op"
> oder "find -op" damit nicht der "./" davor erscheint.
>
> > > Um also alle Files zu finden, die mit "a" anfangen, muss man mittels
> > >
> > >   find . -regex '.*/a.*'
> > >
> > > suchen. Ist ungewohnt, steht aber eindeutig so in der Dokumentation.
> > > Das
> >
> > Das sind aber nicht alle Dateien, die mit a anfangen, sondern alle,
> > die ein a enthalten, m.a.W., bei diesem Beispiel so ungefähr 1 Mio.
> > Will man alle, die mit a anfangen, muss man "find -regex '\.\/a.*'"
> > verwenden.
>
> Wir haben unterschiedliche Vorstellungen davon, was ein Name ist? Das
> Pattern '.*/a.*' sollte alle Pfade matchen, die direkt nach einem "/"
> (also dem Directory-Delimiter) ein "a" enthalten, da der Stern
> ueblicherweise "gierrig" ist, also nur alle Files, deren Name mit "a"
> anfaengt:
>
Verstehe ich nicht. Er geht doch von links nach rechts und gierig heißt 
IMHO, dass er sich beim nach rechts voranschreiten nicht mit einem Treffer 
begnügt. Deshalb liefert ...

>   touch a
>   touch ba
>   find -regex '.*/a.*'
>   ./a
>
... bei mir find -regex '.*/a.*', bzw., wegen der Subdirectories, 
find -maxdepth 1 -regex '.*a.*'
gleich als ersten Treffer 
./.bashrc
und find -maxdepth 1 -regex '.*a.*' |wc -l sagt: 195

und find -maxdepth 1 -regex '.*a' liefert bei mir
./ba
./.mozilla
./a
./.macromedia
./.java
./proc_via

> [...]
>
> > Danke. Uff, das dauert (Fetching with LWP:
> > ftp://ftp.cs.tu-berlin.de/pub/lang/perl/CPAN/authors/id/R/RG/RGARCIA/p
> >erl-5.9.4.tar.gz mit meinem Modem).
>
> Modem? Das ist aber doch so 20. Jahhundert ;-) Da File::Find beim

Ja was denkst denn du? Entsprechend ist auch der Rechner. PII mit Woody 
(das hat Perl 5.6.x, ich hab irgendwann mal 5.8.4 installiert)

> Perl-Core dabei ist, sollte es schon auf Deinem System gewesen sein,
> falls Du Perl nicht geloescht hattest. Was Du da holst, ist die
> komplette neueste Perl-Version.

Ja, das hab ich dann auch gemerkt ;-) V.a. hat cpan mir nach Download der 
13.6MB mitgeteilt, dass das eine unstable Version ist (uneven No.), die 
man nur installieren solle, wenn man aktiv beim Debuggen mithelfen wolle 
und bei der continue-Frage [n] voreingestellt.
Ich hab, wie gesagt, 5.8.4 und laut 
http://search.cpan.org/~nwclark/perl-5.8.8/lib/File/Find.pm
braucht man für File::Find 5.8.8. Dazu gibts auf der Seite auch den Link, 
aber da ich da (als ich wegen des langen Downloads auf die Idee kam, nach 
dem Modul mal auf cpan.org zu gucken) schon ~8MB von 5.9. hatte, hab ichs 
gelassen. Das passiert mir auch nicht nochmal ;-)

Gruß Gebhard
.



Reply to: