Wie kann ich die Ausgabe von du -h nach Größe sortieren?
Ich benötige eine Liste der für Menschen lesbaren du-Ausgabe.
Allerdings hat du
keine "Sortieren nach Größe" Option, und piping zu sort
funktioniert nicht mit dem human readable flag.
Zum Beispiel: Ausführen:
du | sort -n -r
Gibt eine nach Größe sortierte Festplattennutzung aus (absteigend):
du |sort -n -r
65108 .
61508 ./dir3
2056 ./dir4
1032 ./dir1
508 ./dir2
Wenn Sie das Programm jedoch mit dem Flag "für Menschen lesbar" ausführen, wird die Sortierung nicht korrekt durchgeführt:
du -h | sort -n -r
508K ./dir2
64M .
61M ./dir3
2.1M ./dir4
1.1M ./dir1
Kennt jemand eine Möglichkeit, du -h
nach Größe zu sortieren?
984
3
Soweit ich sehen kann, haben Sie drei Möglichkeiten:
du
, um vor der Anzeige zu sortieren.sort
, um menschliche Größen für numerische Sortierung zu unterstützen.Sie könnten auch
du -k
machen und mit Größen in KiB leben.Für Option 3 könnten Sie das folgende Skript verwenden:
Zumindest mit den üblichen Werkzeugen wird dies aufgrund des Formats der menschenlesbaren Zahlen schwierig sein (beachten Sie, dass sort hier eine "gute Arbeit" leistet, da es die Zahlen sortiert - 508, 64, 61, 2, 2 - es kann nur keine Fließkommazahlen mit einem zusätzlichen Multiplikator sortieren).
Ich würde es andersherum versuchen - die Ausgabe von "du | sort -n -r" verwenden und die Zahlen anschließend mit einem Skript oder Programm in ein menschenlesbares Format umwandeln.