Você não especifica se deseja também os arquivos em qualquer subdiretório de /group/book/four/word . A solução find na resposta de jherran irá descer em subdiretórios. Se isso não for desejado, use o shell:
for file in ./*; do [ -f "$file" ] && wc -l "$file"; done | sort -n
Se os nomes dos seus arquivos puderem conter novas linhas, você poderá usar algo como:
for file in ./*; do
[ -f "$file" ] &&
printf "%lu %sshopt -s globstar
for file in ./**/*; do [ -f "$file" ] && wc -l "$file"; done | sort -n
" "$(wc -l < "$file")" "$file"
done | sort -zn | tr 'for file in ./*; do [ -f "$file" ] && wc -l "$file"; done | sort -n
' '\n'
Por fim, se você fizer quiser descer em subdiretórios, poderá usar isso em bash 4 ou acima:
for file in ./*; do
[ -f "$file" ] &&
printf "%lu %sshopt -s globstar
for file in ./**/*; do [ -f "$file" ] && wc -l "$file"; done | sort -n
" "$(wc -l < "$file")" "$file"
done | sort -zn | tr '%pre%' '\n'
Observe que as versões de bash anteriores a 4.3 estavam seguindo os links simbólicos ao descer de forma recursiva a árvore de diretórios (como zsh 's ou tcsh ' ***/* ).
Além disso, todas as soluções acima irão ignorar arquivos ocultos (aqueles cujo nome começa com . , use shopt -s dotglob para incluí-los) e também incluirão a contagem de linha de links simbólicos (que a abordagem find não ).