ordina l'output per colonna


13

Vorrei prendere questo comando find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done( da qui ). che ha un output di sostanzialmente

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

e ordinalo in base ai numeri dal più grande al più piccolo. ma non sono sicuro di come fare sort, o qualunque cosa operi su una colonna diversa.

Risposte:


27

Inoltra le linee sort -n -r -k2. Modificato per ordinare dal più grande al più piccolo.


L'ho provato e funziona alla perfezione
Gert,

3

Un'opzione è capovolgere le colonne:

$ find -maxdepth 1 -type d | while read -r dir; do printf "%d\t%s\n" "`find "$dir" | wc -l`" "$dir"; done

Quindi ottieni l'output in questo modo:

17  .
1   ./acroread_1000_1002
1   ./.ICE-unix
2   ./.X11-unix
1   ./orbit-mrozekma
2   ./ns.mrozekma.:0

Puoi instradarlo sort -nrper ordinarlo nel modo desiderato. Puoi persino reindirizzare il risultato ordinato attraverso qualcosa di simile awk -F'\t' '{print $2 "\t" $1}'a capovolgere le colonne se ne hai bisogno in quell'ordine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.