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 $command
posso 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.