Supondo que você esteja usando bash
e uma versão relativamente nova dele, você deve ser capaz de fazer algo assim.
for CHAR in {a..z}
do
WORD_LIST=( $(grep "$CHAR.*$CHAR" $w) )
echo $CHAR ${#WORD_LIST[@]} ${WORD_LIST[0]}
done
Estamos fazendo uso de matrizes bash que podem fornecer uma contagem do tamanho ${#WORD_LIST[@]}
e obteremos o primeiro elemento da matriz ${WORD_LIST[0]}
.
O motivo pelo qual seu exemplo não funciona é porque uniq -c
contará apenas as instâncias uniq, então ele lhe dará uma contagem de cada palavra, em vez de uma contagem de todas as palavras passadas para ele. .