[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
On Mon, 3 May 2004, Anders Melchiorsen wrote: > Hans Schou <sslug@sslug> skrev den 29-Apr-04: > > > On Thu, 29 Apr 2004, Kristian Nørgaard wrote: > > >> > ls *.txt 2>/dev/null | while read FILE ; do echo $FILE ; done > > >> Vil du forklare hvorfor din metode er mere effektiv? > > > Når du laver en 'for f $(ls -U *.txt)' så vil det give en expansion > > til 2000 filer. Først når den er udpakket, vil for-løkken starte. > > Det er vel også shellen, der ekspanderer *.txt i dit eksempel > ovenfor, så man er lige vidt? OK, korrekt. 'ls -U *.txt' er langsom. Det er hurtigere med: ls -U | grep "\.txt$" Til test oprettede jeg nogle filer: seq -f %04g 1 1 9999|while read N;do touch $N.txt;done En simpel test med 'ls': $ time ls -U | grep "\.txt$" > /dev/null real 0m0.042s > Jeg tror at en mere korrekt måde er > find -name "*.txt" -maxdepth 1 | while read FILE ; do echo "$FILE" ; done $ time find -name "*.txt" -maxdepth 1 > /dev/null real 0m0.027s Du har ret, næsten dobbelt så hurtig. /hans -- Hamletsgade 4 - 201, DK-2200 København N, Phone: +45 3582 9079 Schou Industries ApS http://schou.dk/ CVR: 26 13 44 39 -------------------------------------------------------------- If you are explaining, you're losing. -- JC Watts
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |