Извлечение даты последнего сообщения из файла mbox

Как мне извлечь заголовок "Дата:" для последнего полученного сообщения в файле mbox?

Обратите внимание, что это не просто проблема grep'ing для последнего вхождения "^Date:", так как это может быть также дата из цитируемого ответа, а не фактически последнее полученное сообщение.

Так что, возможно, потребуется правильный синтаксический анализ.

Похоже, чтоgrepmail хорошо разбирается в mbox'ах, однако я не могу найти способ решить эту, казалось бы, тривиальную задачу с его помощью.

Любой вклад?

Благодарю.

E: Хорошо, я официально толстый. ls -l mbox, вероятно, подойдет. Так что.

Тем не менее, я был бы очень заинтересован в более творческом подходе.

3 ответа

grepmail -hH ^Date: /path/folder | grep ^Date: | tail -1

grepmail -hH ^Date: /path/folder: -h требует совпадения в заголовке, -H печатает только заголовки соответствующих писем (т. е. все они)...

| grep ^Date:: из этих заголовков извлеките только Date: линии...

| tail -1: и распечатать только последний из них.

В качестве отправной точки вы можете сделать что-то вроде этого, чтобы найти From строка в начале последней почты.

tac "$MAIL" | grep -m1 '^From '

Строка, начинающаяся с From указывает начальную точку письма в файле mbox. Он также содержит время, в которое он был получен, что обычно более надежно, чем любая другая временная метка, найденная в заголовках почты.

Если вы конкретно хотите Date заголовок, а не From строка, вы можете сделать что-то вроде этого:

tac "$MAIL" | awk '/^Date: / {print} ; /^From / {exit}' | tail -1

Это напечатает первую строку, начинающуюся с Date: в последнем письме. Однако, если заголовки последней почты не имеют Date заголовок, он все равно может соответствовать содержимому, а не заголовку, так что вам нужно как-то убедиться, что письмо действительно имеет Date заголовок.

Так как вам нужно что-то, что понимает фактический формат mbox, канонический почтовый клиент mail или обычная более способная замена mailx приходит на ум.

mailx  -f /path/to/mbox -H 

Поскольку новые сообщения добавляются, что должно перечислить ваши сообщения в порядке их получения.

Другие вопросы по тегам