Bem, talvez não seja a maneira mais elegante, mas o que segue funciona. Ele estende o que você já fez analisando cada linha para filtrar aquelas que têm uma contagem de ocorrências não estritamente maior que 2 .
awk '{print $3}' yourInputFile | sort | uniq -c | while read -r line
do
echo $line | [ 'awk '{print $1}'' -gt 2 ] && echo $line | awk '{print $2}'
done
E se você quiser restringir a exibição a linhas que têm uma contagem de ocorrências estritamente igual a 3 , é ainda mais simples. Um grep
pode ser usado como @wvxvw
sugerido nos comentários. Você nem precisa fazer uma iteração nesse caso, mas é necessário proteger o grep
para não obter valores que começam com 3, mas que são maiores, como 30:
awk '{print $3}' yourInputFile | sort | uniq -c | grep '^\s*3\s' | awk '{print $2}'
Em ambos os casos, a saída é:
APPLE