¿Cómo formo un diccionario con palabras de archivos determinados?

¿Cómo formo un diccionario con palabras de archivos determinados?

¿Cómo extraigo todas las palabras de todos los archivos en un directorio determinado para crear un diccionario? Las palabras deben ser diferentes entre sí (las letras en mayúsculas no se toman en consideración. Por ejemplo, carro=Coche), se escribirán con letras minúsculas en el diccionario (aunque originalmente tuvieran mayúsculas), se ordenarán alfabéticamente y cada línea del diccionario contendrá sólo una palabra. El diccionario estará en /home/dictionary.txt.

Respuesta1

Johnny, creo que lo que quieres hacer podría hacerse fácilmente en un script bash. Pero querrás estudiar sobre redirección, archivos de entrada...;Debería ponerte en marcha, con suerte. |Para obtener palabras o patrones...

Respuesta2

Depende en gran medida del contenido del directorio, pero... este debería ser al menos un muy buen comienzo si hablamos de archivos de texto plano en el directorio en cuestión.

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

Sobre los interruptores, man $commandpuedo exponer.

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

Eliminar líneas en blanco:sed '/^$/d' dictionary.txt > some_other_file

Respuesta3

Puedes hacer esto con awk

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

"print tolower" simplemente convierte a minúsculas (hace que sort -u funcione).

El sed elimina los puntos finales; es posible que necesite o no administrar otros símbolos según sus archivos de entrada.

información relacionada