Differences between version 3 and predecessor to the previous major change of KnowledgeBase/Scripts/pigs.sh.
Other diffs: Previous Revision, Previous Author
Newer page: | version 3 | Last edited on Tuesday, 13 April 2010 4:59:17 | by CyberLeo | Revert |
Older page: | version 2 | Last edited on Tuesday, 20 October 2009 8:52:02 | by CyberLeo | Revert |
@@ -1,6 +1,29 @@
-prettymag
.awk
:
-<code brush="awk
">
+pigs
.sh
:
+<code brush="bash
">
+#!/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" ;;
+ -n) pipe_to="neditc" ;;
+ esac
+ shift
+done
+
+#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} | \
+ awk -f /dev/fd/4 4<<"EOF"
#!/usr/bin/awk -f
BEGIN {
total = 0;
"stat -fc '%s' ." | getline blksz;
@@ -46,32 +69,6 @@
END {
print "----"
print prettymag(total) "\t" "Total";
}
-</code>
-
-pigs.sh:
-<code brush="bash">
-#!/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
+EOF
</code>
version 3
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" ;; -n) pipe_to="neditc" ;; esac shift done #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} | \ awk -f /dev/fd/4 4<<"EOF" #!/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"; } EOF