Пример A-9. Создание "словаря"

Пример A-9. Создание "словаря"

  1. #!/bin/bash
  2. # makedict.sh  [создание словаря]
  3. # Модификация сценария /usr/sbin/mkdict.
  4. # Авторские права на оригинальный сценарий принадлежат Alec Muffett.
  5. #
  6. #  Этот модифицированный вариант включен в документ на основе
  7. #+ документа "LICENSE" из пакета "Crack"
  8. #+ с которым распространяется оригинальный сценарий.
  9. #  Этот скрипт обрабатывает текстовые файлы и создает отсортированный список
  10. #+ слов, найденных в этих файлах.
  11. #  Он может оказаться полезным для сборки словарей
  12. #+ и проведения лексикографического анализа.
  13. E_BADARGS=65
  14. if [ ! -r "$1" ]                     #  Необходим хотя бы один аргумент --
  15. then                                 #+ имя файла.
  16.   echo "Порядок использования: $0 имена_файлов"
  17.   exit $E_BADARGS
  18. fi
  19. # SORT="sort"                        #  Необходимость задания ключей сортировки отпала.
  20.                                      #+ Изменено, по отношению к оригинальному сценарию.
  21. cat $* |                             # Выдать содержимое файлов на stdout.
  22.         tr A-Z a-z |                 # Преобразовать в нижний регистр.
  23.         tr ' ' '\012' |              # Новое: заменить пробелы символами перевода строки.
  24. #       tr -cd '\012[a-z][0-9]' |    #  В оригинальном сценарии: удалить все символы,
  25.                                      #+ которые не являются буквами или цифрами.
  26.         tr -c '\012a-z'  '\012' |    #  Вместо удаления
  27.                                      #+ неалфавитно-цифровые символы заменяются на перевод строки.
  28.         sort |
  29.         uniq |                       # Удалить повторяющиеся слова.
  30.         grep -v '^#' |               # Удалить строки, начинающиеся с "#".
  31.         grep -v '^$'                 # Удалить пустые строки.
  32. exit 0