Ich suche im Grunde nach Dateien und sortiere sie dann nach der Größe. Das Skript funktioniert, wenn ich die Größe nicht nach lesbar sortiere. Aber ich möchte, dass die Größe für Menschen lesbar ist. Wie kann ich Größen sortieren, die für Menschen lesbar sind?
Zum Beispiel:
ls -l | sort -k 5 -n | awk '{print $9 " " $5}'
Dies funktioniert wie erwartet, ich habe die Größe meiner Dateien in Bytes aufsteigend erhalten:
1.txt 1
test.txt 3
bash.sh* 573
DocGeneration.txt 1131
andres_stuff.txt 1465
Branches.xlsx 15087
foo 23735
bar 60566
2016_stuff.pdf 996850
Jetzt möchte ich, dass die Größe für Menschen lesbar ist, also habe ich ls einen -h-Parameter hinzugefügt, und jetzt sind einige Dateien nicht in der richtigen Reihenfolge:
ls -lh | sort -k 5 -n | awk '{print $9 " " $5}'
1.txt 1
DocGeneration.txt 1.2K
andres_stuff.txt 1.5K
test.txt 3
Branches.xlsx 15K
foo 24K
bar 60K
bash.sh* 573
2016_stuff.pdf 974K
ls
Ausgabe
du
statt ls
könnte eine gute Idee sein.
find
ist -printf
mit seinem %p
und %s
Formatierer (durch eine ‚Humanisierung‘ der Größen folgen).
-k 5
- Wie funktioniert das?