#!/bin/bash IFS=$'\n' g=0 t=0 c=0 d=0 p=0 a=0 o=0 for pkg in $(LC_ALL=C pacman -Ss | grep '^[^ ]*/[^ ]* [0-9]*.* \[installed\]'); do r=$(echo $pkg | sed 's/\/.*//') n=$(echo $pkg | sed 's/.*\///; s/ [\[(].*//') case $r in "desktop") let d=$d+1; dp+=("$n");; "games") let g=$g+1; gp+=("$n");; "testing") let t=$t+1; tp+=("$n");; "core") let c=$c+1; cp+=("$n");; "platform") let p=$p+1; pp+=("$n");; "apps") let a=$a+1; ap+=("$n");; *) let o=$o+1; op+=("$n");; esac done printf "[core]\n${cp[@]-(None)\n}\n\n[platform]\n${pp[@]-(None)\n}\n\n[desktop]\n${dp[@]-(None)\n}\n\n[apps]\n${ap[@]-(None)\n}\n\n[games]\n${gp[@]-(None)\n}\n\n[testing]\n${tp[@]-(None)\n}\n\nOther (lib32, etc)\n${op[@]-(None)\n}" printf "\nSummary\n[core]: $c\n[platform]: $p\n[desktop]: $d\n[apps]: $a\n[games]: $g\n[testing]: $t\nOther (lib32, etc): $o\n" IFS=' '