Книга: Искусство программирования на языке сценариев командной оболочки
Пример A-2. mailformat: Форматирование электронных писем
Пример A-2. mailformat: Форматирование электронных писем
#!/bin/bash
# mail-format.sh: Форматирование электронных писем.
# Удаляет символы "^", табуляции и ограничивает чрезмерно длинные строки.
# =================================================================
# Стандартная проверка аргументов
ARGS=1
E_BADARGS=65
E_NOFILE=66
if [ $# -ne $ARGS ] # Проверка числа аргументов
then
echo "Порядок использования: `basename $0` имя_файла"
exit $E_BADARGS
fi
if [ -f "$1" ] # Проверка наличия файла.
then
file_name=$1
else
echo "Файл "$1" не найден."
exit $E_NOFILE
fi
# =================================================================
MAXWIDTH=70 # Максимальная длина строки.
# Удаление символов "^" начиная с первого символа строки,
#+ и ограничить длину строки 70-ю символами.
sed '
s/^>//
s/^ *>//
s/^ *//
s/ *//
' $1 | fold -s --width=$MAXWIDTH
# ключ -s команды "fold" разрывает, если это возможно, строку по пробельному символу.
# Этот сценарий был написан после прочтения статьи, в котором расхваливалась
#+ утилита под Windows, размером в 164K, с подобной функциональностью.
#
# Хороший набор утилит для обработки текста и эффективный
#+ скриптовый язык -- это все, что необходимо, чтобы составить серьезную конкуренцию
#+ чрезмерно "раздутым" программам.
exit 0
- Пример установочного скрипта
- Пример из практики
- «Стероиды» для электронных книг
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Примеры получения статистики
- Пример применения метода «пять почему»
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы
- Пример 17-10. Блочный комментарий
- Примеры
- 2. Пример создания базового отношения в записи на псевдокоде
- Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста