#!/bin/bash # Sorts categories by number of apps in them, discards disabled apps declare -A count for file in metadata/*.txt do while read line do [[ "$line" == "Disabled:"* ]] && break if [[ "$line" == "Category:"* ]] then while IFS=';' read -ra categ do count[$categ]=$(( ${count[$categ]} + 1 )) || count[$categ]=1 done <<< "${line:9}" break fi done < $file done output="" for category in "${!count[@]}" do output+="${count[$category]}_$category\n" done echo -en "$output" | column -t -s '_' | sort -n