Как извлечь все слова из всех файлов в указанном каталоге, чтобы создать словарь? Слова должны отличаться друг от друга (заглавные буквы не учитываются. Например, 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 удаляет конечные точки, вам может потребоваться или не потребоваться управлять другими символами в зависимости от ваших входных файлов.