Risposte:
Prova questo:
ls -l | awk '{print $3, $4, $8}' | sort
Stampa 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 l' ls -loutput completo , ordinati prima per nome utente, quindi per nome del gruppo, quindi per ls -lprima cosa viene stampato.
Si noti che a seconda della 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, più elaborate, ma questa è la più semplice e funzionerà per la maggior parte del tempo.
Come diceva petersohn, qualcosa di simile a:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t$8e il column -tper la stampa carinaO ancora meglio:
ls -l | sort -k 3 - ordina per proprietario e per impostazione predefinita ordina il campo (gruppo) successivo e attivols -l | sort -k 4,4 -k 3 - ordina per gruppo e quindi per proprietariols -l | sort -k 3,3 -k 8 - ordina per proprietario e quindi per nome fileNota: la virgola è il campo di terminazione, quindi 3,3inizia e termina nel campo 3 3,5ordina dai campi da 3 a 5.