Искусство программирования на языке сценариев командной оболочки




Программирование на языке сценариев командной оболочки - стр. 307


# Модификация сценария /usr/sbin/mkdict. # Авторские права на оригинальный сценарий принадлежат Alec Muffett. # # Этот модифицированный вариант включен в документ на основе #+ документа "LICENSE" из пакета "Crack" #+ с которым распространяется оригинальный сценарий.

# Этот скрипт обрабатывает текстовые файлы и создает отсортированный список #+ слов, найденных в этих файлах. # Он может оказаться полезным для сборки словарей #+ и проведения лексикографического анализа.

E_BADARGS=65

if [ ! -r "$1" ] # Необходим хотя бы один аргумент -- then #+ имя файла. echo "Порядок использования: $0 имена_файлов" exit $E_BADARGS fi

# SORT="sort" # Необходимость задания ключей сортировки отпала. #+ Изменено, по отношению к оригинальному сценарию.

cat $* | # Выдать содержимое файлов на stdout. tr A-Z a-z | # Преобразовать в нижний регистр. tr ' ' '\012' | # Новое: заменить пробелы символами перевода строки. # tr -cd '\012[a-z][0-9]' | # В оригинальном сценарии: удалить все символы, #+ которые не являются буквами или цифрами. tr -c '\012a-z' '\012' | # Вместо удаления #+ неалфавитно-цифровые символы заменяются на перевод строки. sort | uniq | # Удалить повторяющиеся слова. grep -v '^#' | # Удалить строки, начинающиеся с "#". grep -v '^$' # Удалить пустые строки.

exit 0

Пример A-10. Расчет индекса "созвучности"

#!/bin/bash # soundex.sh: Расчет индекса "созвучности"

# ======================================================= # Сценарий Soundex # Автор # Mendel Cooper # thegrendel@theriver.com # 23 Января 2002 г. # # Условия распространения: Public Domain. # # Несколько отличающаяся версия этого сценария была опубликована #+ Эдом Шэфером (Ed Schaefer) в Июле 2002 года в колонке "Shell Corner" #+ "Unix Review" on-line, #+ http://www.unixreview.com/documents/uni1026336632258/ # =======================================================

ARGCOUNT=1 # Требуется аргумент командной строки.


Содержание  Назад  Вперед