Associative Array Group And Count

Group and count items using a bash associative array as a frequency map with iteration over sorted keys.

BashCli Tooling

Code

snippet
#!/usr/bin/env bash
set -euo pipefail

declare -A counts

while read -r line; do
  ((counts["$line"]++))
done < input.txt

for key in "${!counts[@]}"; do
  printf "%s\t%d\n" "$key" "${counts[$key]}"
done | sort -t$'\t' -k2 -rn