Как сформировать словарь со словами из заданных файлов?

Как сформировать словарь со словами из заданных файлов?

Как извлечь все слова из всех файлов в указанном каталоге, чтобы создать словарь? Слова должны отличаться друг от друга (заглавные буквы не учитываются. Например, car=Car), в словаре они будут написаны строчными буквами (даже если изначально они были заглавными), они будут отсортированы по алфавиту, и каждая строка в словаре будет содержать только одно слово. Словарь будет в /home/dictionary.txt.

решение1

Джонни, я думаю, то, что ты хочешь сделать, можно легко сделать в скрипте bash. Но тебе нужно будет изучить перенаправление, входные файлы... ;Надеюсь, это вас заинтересует. |Для получения слов или шаблонов...

решение2

Сильно зависит от содержимого каталога, но... это должно быть, по крайней мере, очень хорошим началом, если мы говорим о простых текстовых файлах в рассматриваемом каталоге.

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

О переключателях man $commandмогу рассказать.

Удалить числа:sed 's/[0-9]*//g' dictionary.txt > a_different_file

Удалить пустые строки:sed '/^$/d' dictionary.txt > some_other_file

решение3

Вы можете сделать это с помощью awk

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

«print tolower» просто преобразует все буквы в нижний регистр (заставляет работать sort -u).

sed удаляет конечные точки, вам может потребоваться или не потребоваться управлять другими символами в зависимости от ваших входных файлов.

Связанный контент