Differences between version 2 and previous revision of KnowledgeBase/Scripts/pigs.sh.
Other diffs: Previous Major Revision, Previous Author
Newer page: | version 2 | Last edited on Tuesday, 20 October 2009 8:52:02 | by CyberLeo | Revert |
Older page: | version 1 | Last edited on Saturday, 18 July 2009 7:47:52 | by CyberLeo | Revert |
@@ -1,6 +1,6 @@
prettymag.awk:
-<code brush=awk>
+<code brush="
awk"
>
#!/usr/bin/awk -f
BEGIN {
total = 0;
"stat -fc '%s' ." | getline blksz;
@@ -49,9 +49,9 @@
}
</code>
pigs.sh:
-<code brush="sh
">
+<code brush="bash
">
#!/bin/sh
du_flags="-sxb"
sort_flags="-bn"
version 2
prettymag.awk:
#!/usr/bin/awk -f BEGIN { total = 0; "stat -fc '%s' ." | getline blksz; close("stat -fc '%s' .") syms[0] = "B"; syms[1] = "K"; syms[2] = "M"; syms[3] = "G"; syms[4] = "T"; syms[5] = "P"; } function prettymag(count) { count = count; mag = 0; while (count > 1024) { mag += 1; count /= 1024; } sym = syms[mag]; if (mag == 0) { return sprintf("%0.0f%s", count, sym); } else { if (count < 10) { return sprintf("%0.2f%s", count, sym); } else if (count < 100) { return sprintf("%0.1f%s", count, sym); } else { return sprintf("%0.0f%s", count, sym); } } } /^([0-9]+)\t(.*)$/ { name = $0 sub(/^[0-9]+\t/, "", name) total += $1 if (($1 % blksz) > 0) { total += (blksz - ($1 % blksz)) } print prettymag($1) "\t" name; } END { print "----" print prettymag(total) "\t" "Total"; }
pigs.sh:
#!/bin/sh du_flags="-sxb" sort_flags="-bn" while [ "${1}" ] do case "${1}" in -k) du_flags="${du_flags} -k" ;; -d) sort_flags="${sort_flags} -r" ;; esac shift done # Old format code commaizes century numbers, but does so even in filenames #find . -maxdepth 1 -print0 | sed -e 's/\x00\.\//\x00/g' -e 's/^\.\x00//g' | \ # xargs -0 du ${du_flags} | sort ${sort_flags} | \ # awk '{ c = c + $1; print }END{ print "----\n" c "\tTotal" }' | \ # sed -e :a -e 's/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta' find . -maxdepth 1 -print0 | sed -e 's/\x00\.\//\x00/g' -e 's/^\.\x00//g' | \ xargs -0 du ${du_flags} | sort ${sort_flags} | \ prettymag.awk