Você pode usar stat -c%s *filename*
para obter o tamanho de cada arquivo, e ls -l *.txt | wc -l
(nota ls
dará um erro se não houver arquivos * .txt no diretório) para obter o número de arquivos .txt no diretório atual.
Bash, AFIK, não suporta aritmética de ponto flutuante, então você precisará usar algum outro programa para calcular o tamanho médio. Sugiro usar bc
.
O script a seguir imprimirá o tamanho médio de todos os arquivos * .txt no diretório atual
#!/bin/bash
tsize=0
fcount='ls -l *.txt | wc -l'
for f in *.txt
do
fsize='stat -c%s $f'
tsize='expr $tsize + $fsize'
done
average='echo "$tsize / $fcount" | bc -l'
echo "Average size: $average"
Observe que você receberá um erro de ls
se não houver arquivos .txt no diretório atual.