Contador de Palavras no Terminal
Dica publicada em Shell Script / Miscelânea
Contador de Palavras no Terminal
Uma das coisas que eu senti falta no Linux foi um comando que pudesse fazer a contagem de palavras de um arquivo de texto no Linux. Ao pesquisar na internet, é possível encontrar alguns scripts, mas muitos deles são longos e incompreensíveis e por isso não são muito interessantes de serem usados, pelo menos no meu caso.
Por isso resolvi desenvolver meu próprio contador de palavras. Eu queria um contador de palavras que pudesse contar as palavras do texto inteiro e de forma eficiente. Como não achei nenhum comando específico para isso, então com alguns comandos, o resultado foi esse:
Agora vamos as explicações:
Obs.: não deixe o caractere "!" solto no texto para evitar erros de leitura pelo comando tr.
Coloque o nome que achar mais conveniente e faça o teste para comprovar sua eficiência em poucas linhas. Como a entrada vai ser pelo comando tr, deve-se usar o carácter de direcionamento "<", conforme visto a seguir:
./palavra < documento.txt
Para exemplificação, será usado um conjunto de palavras para a demonstração da funcionalidade:
./palavra <<< "pc linux manjaro, kde xfce , shell bash - linux, mxnt ... .txz ???"
Resultado:
Número de palavras: 10
E assim, comprovamos sua eficiência. Até mais.
Por isso resolvi desenvolver meu próprio contador de palavras. Eu queria um contador de palavras que pudesse contar as palavras do texto inteiro e de forma eficiente. Como não achei nenhum comando específico para isso, então com alguns comandos, o resultado foi esse:
#!/bin/bash
echo -e "\nNúmero de palavras: $( wc -l < <(sed "/^$/d;/^[[:punct:]]*$/d" <(tr ' ' '\n' $1)) )\n"; exit 0
echo -e "\nNúmero de palavras: $( wc -l < <(sed "/^$/d;/^[[:punct:]]*$/d" <(tr ' ' '\n' $1)) )\n"; exit 0
Agora vamos as explicações:
- Foi usado o comando tr para substituir todos os espaços por uma quebra de linha, assim fica uma palavra por linha.
- Foi usado o comando sed para eliminar qualquer linha em branco e caracteres de pontuação que por acaso não estejam junto às palavras.
- O comando wc com o parâmetro -l contou as linhas. Os comandos anteriores posicionaram uma palavra em cada linha e eliminou as que não possuíam uma palavra, o que resulta no número total de palavras.
Obs.: não deixe o caractere "!" solto no texto para evitar erros de leitura pelo comando tr.
Coloque o nome que achar mais conveniente e faça o teste para comprovar sua eficiência em poucas linhas. Como a entrada vai ser pelo comando tr, deve-se usar o carácter de direcionamento "<", conforme visto a seguir:
./palavra < documento.txt
Para exemplificação, será usado um conjunto de palavras para a demonstração da funcionalidade:
./palavra <<< "pc linux manjaro, kde xfce , shell bash - linux, mxnt ... .txz ???"
Resultado:
Número de palavras: 10
E assim, comprovamos sua eficiência. Até mais.
v -> g -> ctrl+g