Como faço para formar um dicionário com palavras de determinados arquivos?

0

Como faço para extrair todas as palavras de todos os arquivos em um determinado diretório para criar um dicionário? As palavras devem ser diferentes umas das outras (letras em letras maiúsculas não são levadas em consideração. Por exemplo, carro = Carro), elas serão escritas com letras minúsculas no dicionário (mesmo que originalmente tivessem maiúsculas), elas serão classificadas. em ordem alfabética e cada linha no dicionário conterá apenas uma palavra. O dicionário estará em /home/dictionary.txt.

    
por johnny 07.12.2011 / 18:37

3 respostas

1

johnny, acho que o que você quer fazer pode ser feito facilmente em um script bash. Mas você vai querer estudar o redirecionamento, arquivos de entrada ...; deve começar esperançosamente. | Para obter palavras ou padrões ...

    
por rdh 07.12.2011 / 18:50
0

Depende muito do conteúdo do diretório, mas ... isso deve ser pelo menos um começo muito bom se estamos falando de arquivos de texto simples no diretório em questão.

cd
find $directory_name -type f -exec grep -o -E '\w+' {} \; | sort -u -f > out
tr '[:upper:]' '[:lower:]' < out > dictionary.txt
rm out

Sobre os comutadores, man $command pode ser exposto.

Remover números: sed 's/[0-9]*//g' dictionary.txt > a_different_file

Remover linhas em branco: sed '/^$/d' dictionary.txt > some_other_file

    
por user8290 07.12.2011 / 20:09
0

Você pode fazer isso com o awk

 awk 'BEGIN {RS=" "}; /^[A-Za-z]*$/ {print tolower ($0)}' ./* | sed 's_[.].*$__g' | sort -u

"print tolower" simplesmente converte para todas as letras minúsculas (faz a ordenação -u funcionar).

O sed remove os períodos finais, você pode ou não precisar gerenciar outros símbolos, dependendo dos arquivos de entrada.

    
por Panther 07.12.2011 / 21:04