Eu gostaria de assumir este comando find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done
( daqui ). que tem uma saída de basicamente
./kennel: 11062
./shadow: 15449
./ccc: 9765
./journeyo: 14200
./norths: 10710
e classifique-o pelos números do maior ao menor. mas não tenho certeza de como fazer sort
, ou qualquer outra coisa, operar em uma coluna diferente.
Passe as linhas por sort -n -r -k2
. Editado para classificar do maior para o menor.
Uma opção é inverter as colunas:
$ find -maxdepth 1 -type d | while read -r dir; do printf "%d\t%s\n" "`find "$dir" | wc -l`" "$dir"; done
Então você obtém uma saída como esta:
17 .
1 ./acroread_1000_1002
1 ./.ICE-unix
2 ./.X11-unix
1 ./orbit-mrozekma
2 ./ns.mrozekma.:0
Você pode canalizar isso através de sort -nr
para ordenar da maneira que você quiser. Você pode até canalizar o resultado classificado por meio de algo como awk -F'\t' '{print $2 "\t" $1}'
para virar as colunas de volta se você precisar delas nessa ordem