Prueba esto:
ls -l | awk '{print $3, $4, $8}' | sort
Imprimirá el nombre de usuario, el nombre del grupo y el nombre del archivo, siempre que el nombre del archivo no contenga espacios. Alternativamente, puede escribir:
ls -l | awk '{print $3, $4, $0}' | sort
Esto imprimirá el nombre de usuario, el nombre del grupo y el ls -l
completo salida, ordenada por el nombre de usuario primero, luego el nombre del grupo, luego lo que sea ls -l
imprime primero.
Tenga en cuenta que dependiendo de su distribución, los números de columna reales pueden diferir. Probé el mío en SUSE y coreutils versión 5.2.1.
Probablemente haya soluciones mejores y más elaboradas, pero esta es la más simple y funcionará la mayor parte del tiempo.
Como dijo petersohn, algo similar a:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
agregó el$8
y elcolumn -t
para un bonito estampado
O aún mejor:
ls -l | sort -k 3
- ordena por propietario y por defecto ordena el siguiente campo (grupo) y enls -l | sort -k 4,4 -k 3
- ordena por grupo y luego por propietariols -l | sort -k 3,3 -k 8
- ordena por propietario y luego por nombre de archivo
Nota: la coma es el campo terminador así que 3,3
comienza y termina en el campo 3 3,5
ordena de los campos 3 a 5.