Como encontrar palavras contadas em um arquivo de texto excluindo uma palavra dada pelo usuário

2

Eu tenho o grande conjunto do arquivo de texto. Nesse artigo, cada artigo é separado por 15 stopwords . Desejo descobrir o número total de palavras contadas nesse arquivo, excluindo o stopword

    
por srikanth nagineni 03.11.2017 / 13:42

3 respostas

5

Com o GNU grep :

grep -Eo '\S+' < file | grep -vcxF stopword

Contaria ( -c ) o número de palavras (com a mesma definição de palavra como wc -w , pelo menos em texto válido, ou seja, sequências de caracteres não espaçadores ( \S+ )) que não são ( -v ) exatamente ( -xF ) stopword .

    
por 03.11.2017 / 13:52
3

O número de palavras em input menos o número de stopword s (usando % de -o do GNU grep a>, desde que você marcou o Linux):

echo $(( $(wc -w < input) - $( grep -o stopword input | wc -l ) ))

Exemplo de entrada:

I have the large set of the text file. In that, each article is separated by 15 stopwords. I want to find out the total number of words count in that file excluding the stopword.
stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword stopword
I have the large set of the text file. In that, each article is separated by 15 stopwords. I want to find out the total number of words count in that file excluding the stopword.

Saída:

$ echo $(( $(wc -w < input) - $( grep -o stopword input | wc -l ) ))
66
    
por 03.11.2017 / 13:47
2
awk '{ gsub("stopword",""); words+=NF }; END { print words; }' /text/file

Isso conta tudo o que awk considera um campo. Mesmo semanticamente não é uma palavra como

  • um hífen
  • um ponto após um espaço (final errado da frase. Próxima frase)
  • números nos títulos (1. introdução)
por 03.11.2017 / 13:47