On Thursday 27 May 2004 19:33, Adrian Popescu wrote:
> On Thursday 27 May 2004 17:45, Dan Uscatu wrote:
> > problema: sa se calculeze suma dimensiunilor tuturor fisierelor de un
> > anumit tip (de exemplu .jpg) din directorul curent.
>
> stat -c %s *.jpg  | awk '{x=x+$1} END {print x}'

Orice solutie bazata pe faptul ca te astepti ca bash-ul sa-ti faca "expand" la 
* din linia de comanda are un mare inconvenient: daca ai multe fisiere atunci 
primesti un foarte frumos: "argument list too long".

Bottom line(s):
- solutia de mai sus e ok, in cazul in care ai putine fisiere (cu nume nu 
foarte lungi)
- daca ai in vedere ca fisierele ar putea fi si in subdirectoare, gasirea 
lungimii lor este recomandat a fi facuta cu find
- parsarea output-ului lui "ls-lR" e iarasi destul de consumatoare de timp in 
cazul unui numar mare de fisiere

Deci solutia optima ar fi:

echo $(find . -type f -name ".*jpg" -printf "%s+")0 | bc


Mihai

--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui