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

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

0
задан 7 December 2011 в 21:57

3 ответа

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

0
ответ дан 7 December 2011 в 21:57

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

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

0
ответ дан 7 December 2011 в 21:57

Можно сделать это с awk

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

"распечатайте tolower", просто преобразовывает в весь нижний регистр (делает вид-u работой).

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

0
ответ дан 7 December 2011 в 21:57

Другие вопросы по тегам:

Похожие вопросы: