Como Contar Palavras de um arquivo com Shell Script

Contar quantas vezes uma determinada palavra aparece num texto (arquivo)


Como Contar Palavras de um arquivo com Shell Script

Olá galera, acabei de criar essa função , serve pra contar quantas vezes uma determinada palavra aparece num texto(arquivo) modo de utilizar entre outros dados, no próprio cabeçalho do Script, cada linha explicada nos comentários.

#!/bin/bash
# ---------------------------------------------------------------
# ./contapalavra
#
# Shell Scripting: Função para contar palavra num arquivo
#
# Uso: contapalavras [palavra] [arquivo]
#
# Ex.: ./contapalavras MinhaPalavra arquivo.txt
#
# Autor: Marcos da Boa Morte, www.terminalroot.com.br
# Desde: Sáb 29 Jun 2013 22:53:28 BRT 
# Versão: 1
# Licença: GPL
# ----------------------------------------------------------------
contapalavra(){
 # Deixa todas as palavras numa única linha
 sed 's/ /\n/g' $2 | 
 
 # apaga todas as linhas em branco
 sed '/^$/d' | 
 
 # Remove caracteres que não são parte de palavras
 sed 's/[^A-Za-z0-9ÀàÁáÂâÃãÉéÊêÍíÓóÔôÕõÚúÇç_-]/ /g' | 
 
 # Ordena as palavras em ordem alfabética
 sort -n | 
 
 # exibe quantidade de vezes que aparece em cada linha a palavra X
 uniq -c | 
 
 # ordena por numeros a quantidade de uniq
 sort -n | 
 
 # exibe as linhas que contém a palavra procurada
 # n (mostra o número de cada linha; 
 # i ignora a diferença entre letras maiúsculas e letras minúsculas
 egrep -ni "$1" | 
 
 # o egrep(pós uniq) exibe [numero: palavra], então o cut retira o : e o que vem antes dele
 cut -d: -f2 | 
 
 # troca os espaços vazios por quebra de linha
 sed 's/ /\n/g' | 
 
 # remove novamente as linhas em branco
 sed '/^$/d' | 
 
 #exibe o número(que está na primeira linha)
 sed -n 1p
 
 # exibição intuitiva, caso queira.
 #echo "A palavra ($1) aparece: "$(sed -n 1p) " vezes no arquivo: "$2
}

# chama a função e passa os parâmetros para ela.
contapalavra $1 $2

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários