From d265cd11ac471b7d2596ac1c41b81e64094b788e Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Sun, 22 Dec 2019 11:07:57 -0500 Subject: [PATCH] Implement top_commands function --- home/lib/login_functions.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) 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() { -- 2.20.1