du -Lsbc * | awk '
function hr(bytes) {
hum[1024**4]="TiB";
hum[1024**3]="GiB";
hum[1024**2]="MiB";
hum[1024]="kiB";
for (x = 1024**4; x >= 1024; x /= 1024) {
if (bytes >= x) {
return sprintf("%8.3f %s", bytes/x, hum[x]);
}
}
return sprintf("%4d B", bytes);
}
{
print hr($1) "\t" $2
}
'
Darauf basierende awk-Funktion.
Man könnte die Ausgabe wahrscheinlich etwas schöner aussehen lassen, indem man sie durch column
leitet oder links mit Leerzeichen auffüllen.
Bearbeiten: Linke Polsterung hinzugefügt.
Auch zum Sortieren der Liste:du -Lsbc * | sort -n | awk
und dann das awk-Skript.