Este script usa o awk para extrair subdiretórios da lista ls. Cada subdiretório é inserido e seus subdiretórios são contados. Finalmente, o cálculo da média usa dc. Eu configurei dc (usando 2 k
) para a saída para 2 casas decimais.
dirs=$(ls -ld * | awk '$1 ~ /^d.*/ { print $9 }')
ndirs=0
for d in $dirs
do
cd $d
current_nsubdirs=$(ls -ld * 2>/dev/null | awk '$1 ~ /^d.*/ { print $9 }' | wc -l)
nsubdirs=$(($nsubdirs + $current_nsubdirs))
ndirs=$(($ndirs + 1))
cd ..
done
echo "Total subdirs $ndirs"
echo "Total subsubdirs $nsubdirs"
avg=$(dc <<< "2 k $nsubdirs $ndirs / p")
echo "Average subsubdirs $avg"