decode-mail-headers

0
readme.md

Описание

Утилита ищет почтовые заголовки и декодирует их в читаемый вид. Утилита считывает файлы или строки до первой пустой строки или конца файла, объединяет многострочные заголовки в одну строку, декодирует заголовки в читаемый формат. При наличии аргументов проводит построчный поиск по подстроке или регулярному выражению. Поиск идет до первого совпадения.

Компиляция

GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o decodemailheaders

  • GOOS=linux GOARCH=amd64
    - целевая ОС и архитектура
  • -ldflags "-s -w"
    - исключает различную отладочную информацию (уменьшит размер файла)
  • -o decodemailheaders
    - имя исполняемого файла

Аргументы

  • -substr
    - строка для поиска
  • -regexp
    - регулярное выражение для поиска
  • -oneline
    - показать найденный заголовок вместо всех заголовков

Аргумент

oneline
работает только если задан
substr
или
regexp
. Аргумент
regexp
приоритетнее чем
substr
. При указании и
substr
и
regexp
сработает только
regexp
. Список файлов идет после аргументов.

Утилита работает в конвейере (

|
) и со стандартным вводом (
>
) если в аргументах не указаны файлы.

Примеры

Пример 1

Искать в папке /path/to/mail/folder/ файлы содержащие строку To:, вывести только найденную строку.

Пример 2

Найти все файлы по пути /path/to/mail/folder во вложенных папках cur и new, включающие строку начинающуюся с Subject: и содержащую текст Test или test. Результат сохранить в файл report.txt

  • shopt -s globstar
    - разрешает использование /**/ (текущий каталог и все подкаталоги рекурсивно)
  • find path -type f -print0
    - поиск по пути path, тип файл, печатать на стандартный вывод завершая строку нулевым символом (такой формат используется в xargs -0)
  • xargs -0 program
    - передать program стандартный вывод в качестве последнего параметра
  • decodemailheaders -oneline -regexp "^Subject:.*[Tt]est"
    - вывести только найденную строку, искать по регулярному выражению ^Subject:.*[Tt]est

Проблемы

  • Утилита не понимает тип кодировки x-user-defined.