summaryrefslogtreecommitdiffstats
path: root/scripts/library/size_to_human.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/library/size_to_human.sh')
-rw-r--r--scripts/library/size_to_human.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/library/size_to_human.sh b/scripts/library/size_to_human.sh
new file mode 100644
index 00000000..1d13eeb4
--- /dev/null
+++ b/scripts/library/size_to_human.sh
@@ -0,0 +1,22 @@
+size_to_human() {
+ awk -v size="$1" '
+ BEGIN {
+ suffix[1] = "B"
+ suffix[2] = "KiB"
+ suffix[3] = "MiB"
+ suffix[4] = "GiB"
+ suffix[5] = "TiB"
+ suffix[6] = "PiB"
+ suffix[7] = "EiB"
+ count = 1
+
+ while (size > 1024) {
+ size /= 1024
+ count++
+ }
+
+ sizestr = sprintf("%.2f", size)
+ sub(/\.?0+$/, "", sizestr)
+ printf("%s %s", sizestr, suffix[count])
+ }'
+}