Versuchen Sie Folgendes:
ls -l | awk '{print $3, $4, $8}' | sort
Es gibt den Benutzernamen, den Gruppennamen und den Dateinamen aus, sofern der Dateiname keine Leerzeichen enthält. Alternativ können Sie Folgendes eingeben:
ls -l | awk '{print $3, $4, $0}' | sort
Dadurch werden der Benutzername, der Gruppenname und der vollständige ls -l
gedruckt Ausgabe, sortiert zuerst nach dem Benutzernamen, dann nach dem Gruppennamen, dann nach was auch immer ls -l
druckt zuerst.
Beachten Sie, dass die tatsächlichen Spaltennummern je nach Distribution abweichen können. Ich habe meine in SUSE und Coreutils Version 5.2.1 ausprobiert.
Es gibt wahrscheinlich bessere, ausgefeiltere Lösungen, aber dies ist die einfachste und wird die meiste Zeit funktionieren.
Wie Petersohn sagte, etwas Ähnliches wie:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
$8
hinzugefügt und diecolumn -t
für hübschen Druck
Oder noch besser:
ls -l | sort -k 3
- Sortiert nach Besitzer und sortiert standardmäßig das nächste Feld (Gruppe) und weiterls -l | sort -k 4,4 -k 3
- sortiert nach Gruppe und dann nach Besitzerls -l | sort -k 3,3 -k 8
- sortiert nach Besitzer und dann nach Dateiname
Hinweis: das Komma ist das Abschlussfeld, also 3,3
beginnt und endet bei Feld 3 3,5
sortiert von den Feldern 3 bis 5.