Você pode usar
echo "hjsyeh hellodir ; awgshd newdir; hjsyeh hidir; jkdhjk welcomedir" | \
sed -e "s/;\s*/\n/g" | awk '{print $1 }' | sort | uniq -c
Sua saída é:
1 awgshd
2 hjsyeh
1 jkdhjk
EDITAR:
Saída no formato solicitado com outra chamada de awk
:
echo "hjsyeh hellodir ; awgshd newdir; hjsyeh hidir; jkdhjk welcomedir" |
sed -e "s/;\s*/\n/g" | awk '{print $1 }' | sort | uniq -c |
awk '{ printf "%s -%s directories\n" , $2 , $1 }'
saída:
awgshd -1 directories
hjsyeh -2 directories
jkdhjk -1 directories