classificar a saída por coluna

13

Eu gostaria de tomar 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 basicamente

./kennel:       11062
./shadow:       15449
./ccc:  9765
./journeyo:     14200
./norths:       10710

e classifique-o pelos números do maior para o menor. mas não sei ao certo como fazer sort, ou o que quer que opere em uma coluna diferente.

xenoterracida
fonte

Respostas:

27

Conduza as linhas sort -n -r -k2. Editado para classificar do maior para o menor.

W_Whalley
fonte
Tentei e funciona perfeitamente
Gert
3

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 canalizá-lo sort -nrpara classificá-lo da maneira que desejar. Você pode até canalizar o resultado classificado através de algo como awk -F'\t' '{print $2 "\t" $1}'inverter as colunas se precisar delas nessa ordem

Michael Mrozek
fonte