Estou preso em descobrir como somar ls
o resultado da 5ª coluna com awk
. Se eu adicionar $bytesum+=...
, o programa obviamente quebra. Alguma ideia?
bytesum=0
for i in `cat fileextensions.txt | sort | uniq`
do
ls -Rl "$folder" | grep $i | awk '{bytesum+=$5}; {print $9 " " $5}'
done
echo $bytesum
Responder1
Com o GNU, tudo que você precisa é:
find . -type f -printf '%s\n' | awk '{s+=$0} END{print s+0}'
Com qualquer descoberta:
find . -type f -exec stat -c '%s\n' {} \; | awk '{s+=$0} END{print s+0}'
Para apenas localizar e registrar arquivos com uma extensão específica em um diretório específico ("pasta" é um termo do Windows, na terminologia UNIX é um diretório), como parece que você está tentando fazer, seria:
dir='whatever'
ext='pdf'
find "$dir" -type f -name "*.${ext}" -printf '%s\n'
Responder2
Na festa:
for size in `du *.jpg | cut -f1`; do sum=$((sum+size)); done; echo $sum
Integre isso ao seu loop principal, alterando o .jpg
no meu exemplo para uma variável adequada $i
no seu script.