From: Siraaj Khandkar Date: Sun, 22 Dec 2019 16:07:57 +0000 (-0500) Subject: Implement top_commands function X-Git-Url: https://git.xandkar.net/?p=khome.git;a=commitdiff_plain;h=d265cd11ac471b7d2596ac1c41b81e64094b788e Implement top_commands function --- diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index 163c09e..e006eee 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -5,6 +5,40 @@ d() { dict "$word" } +top_commands() { + history \ + | awk ' + { + count[$4]++ + } + + END { + for (cmd in count) + print count[cmd], cmd + }' \ + | sort -n -r -k 1 \ + | head -50 \ + | awk ' + { + cmd[NR] = $2 + c = count[NR] = $1 + 0 # + 0 to coerce number from string + if (c > max) + max = c + } + + END { + for (i = 1; i <= NR; i++) { + c = count[i] + printf "%s %d ", cmd[i], c + scaled = (c * 100) / max + for (j = 1; j <= scaled; j++) + printf "|" + printf "\n" + } + }' \ + | column -t +} + # Top Disk-Using directories # TODO: Consider using numfmt instead of awk tdu() {