como encontrar o percentual de aparecimento de palavras em um arquivo

2

Eu tenho uma palavra e quero verificar qual a porcentagem de sua aparência em um arquivo (de acordo com o número total de palavras no arquivo)? Por exemplo, se eu tiver a palavra "você" e aparecer 2 vezes em um arquivo com 8 palavras, a saída será 25%.

Eu tentei: fgrep -ow

    
por mor 11.11.2015 / 10:51

3 respostas

2

você pode obter o número total de palavras em seu arquivo da seguinte forma

nw='wc -w < /path/to/file'

E o número de ocorrências de uma determinada palavra / padrão com

occurrences='egrep -c <pattern> /path/to/file'

então você pode facilmente calcular a porcentagem e colocar o resultado em uma variável

result='echo "scale=2; $occurrences*100/$nw" | bc'

para adicionar % , por exemplo. faça o seguinte

echo $result'%'
    
por 11.11.2015 / 11:05
0

Use a mesma lógica mostrada URL

tr ' ' '\n' < file.txt | awk '{if($0=="her"){nmw+=1}}END{print ((nmw*100)/NR)}'
    
por 11.11.2015 / 11:07
0

com awk :

awk -vw="word" 'BEGIN{RS="[^a-zA-Z]+"} $0==w{c++} END{printf "%.1f%%\n",c*100/NR}' file
  • -vw="word"awk a variável w que contém "palavra". Essa é a palavra, você quer ter a porcentagem.
  • BEGIN{RS="[^a-zA-Z]+"} define o separador de linha como tudo, mas carta, então cada palavra é processada separadamente.
  • $0==w{c++} aumenta o contador se a palavra for encontrada.
  • END{printf "%.1f%%\n",c*100/NR} imprime o número calculado depois que o arquivo é processado
por 11.11.2015 / 12:34

Tags