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
