Пример A-2. mailformat: Форматирование электронных писем

Пример A-2. mailformat: Форматирование электронных писем

  1. #!/bin/bash
  2. # mail-format.sh: Форматирование электронных писем.
  3. # Удаляет символы "^", табуляции и ограничивает чрезмерно длинные строки.
  4. # =================================================================
  5. #                 Стандартная проверка аргументов
  6. ARGS=1
  7. E_BADARGS=65
  8. E_NOFILE=66
  9. if [ $# -ne $ARGS ]  # Проверка числа аргументов
  10. then
  11.   echo "Порядок использования: `basename $0` имя_файла"
  12.   exit $E_BADARGS
  13. fi
  14. if [ -f "$1" ]       # Проверка наличия файла.
  15. then
  16.     file_name=$1
  17. else
  18.     echo "Файл \"$1\" не найден."
  19.     exit $E_NOFILE
  20. fi
  21. # =================================================================
  22. MAXWIDTH=70          # Максимальная длина строки.
  23. #  Удаление символов "^" начиная с первого символа строки,
  24. #+ и ограничить длину строки 70-ю символами.
  25. sed '
  26. s/^>//
  27. s/^  *>//
  28. s/^  *//
  29. s/              *//
  30. ' $1 | fold -s --width=$MAXWIDTH
  31.           # ключ -s команды "fold" разрывает, если это возможно, строку по пробельному символу.
  32. #  Этот сценарий был написан после прочтения статьи, в котором расхваливалась
  33. #+ утилита под Windows, размером в 164K, с подобной функциональностью.
  34. #
  35. #  Хороший набор утилит для обработки текста и эффективный
  36. #+ скриптовый язык — это все, что необходимо, чтобы составить серьезную конкуренцию
  37. #+ чрезмерно "раздутым" программам.
  38. exit 0