Prova questo:
ls -l | awk '{print $3, $4, $8}' | sort
Stamperà il nome utente, il nome del gruppo e il nome del file, a condizione che il nome del file non contenga spazi. In alternativa, puoi digitare:
ls -l | awk '{print $3, $4, $0}' | sort
Questo stamperà il nome utente, il nome del gruppo e il ls -l
completo output, ordinato prima in base al nome utente, poi al nome del gruppo, quindi qualunque ls -l
stampa prima.
Tieni presente che, a seconda della tua distribuzione, i numeri di colonna effettivi potrebbero differire. Ho provato il mio in SUSE e coreutils versione 5.2.1.
Probabilmente ci sono soluzioni migliori e più elaborate, ma questa è la più semplice e funzionerà per la maggior parte del tempo.
Come ha detto petersohn, qualcosa di simile a:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
aggiunto il$8
e ilcolumn -t
per una bella stampa
O ancora meglio:
ls -l | sort -k 3
- ordina per proprietario e per impostazione predefinita ordina il campo successivo (gruppo) e avantils -l | sort -k 4,4 -k 3
- ordina per gruppo e poi per proprietariols -l | sort -k 3,3 -k 8
- ordina per proprietario e poi per nome file
Nota: la virgola è il campo terminatore quindi 3,3
inizia e finisce nel campo 3 3,5
ordina dai campi da 3 a 5.