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

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

Como extraio todas as palavras de todos os arquivos de um determinado diretório para criar um dicionário? As palavras devem ser diferentes umas das outras(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 ordenadas em ordem alfabética e cada linha do dicionário conterá apenas uma palavra. O dicionário estará em /home/dictionary.txt.

Responder1

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

Responder2

Depende muito do conteúdo do diretório, mas... isso deve ser pelo menos um bom começo se estivermos 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 switches, man $commandposso explicar.

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

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

Responder3

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 letras minúsculas (faz sort -u funcionar).

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

informação relacionada