Ну вот я тут на левой коленке налабал скоренько (сорри за кривость и раздутость скрипта, очень времени мало):
#!/bin/bash
grep "Submit from: su@mrglife.ru" /var/CommuniGate/SystemLogs/2009-05-19.log | awk '{print $3}' | cut --complement -b '12-24' > /tmp/submit
rm -f /tmp/submit1
while read string ; do
grep $string /var/CommuniGate/SystemLogs/2009-05-19.log | grep "Submit to: " | awk '{print $1,$6}'>> /tmp/submit1
done < /tmp/submit
Результатом данного скрипта является:
cat /tmp/submit1
09:50:14.169 nanovsky@mrggroup.ru 10:52:39.630 phone@mrglife.ru 10:58:30.641 pushin@mrggroup.ru 11:24:47.234 pushin@mrggroup.ru 11:25:18.164 vidanov@mrgarant.ru 11:25:18.204 kozlov@mrglife.ru 11:26:23.314 su@mrggroup.ru 11:42:42.157 nanovsky@mrggroup.ru 11:55:55.655 kostikova@mrggroup.ru 12:50:20.085 nanovsky@mrggroup.ru 12:56:53.724 nanovsky@mrggroup.ru
Т.е. все, кому я отправлял письма за 19 мая 09 года. В принципе видите повторяющиеся поля, если я этому человеку отправлял не один раз. Можно дописать скрипт и отсечь совпадения, если не нужны подробности "во сколько отправлял".
Небольшой разбор скрипта:
grep "Submit from: su@mrglife.ru" /var/CommuniGate/SystemLogs/2009-05-19.log - вычленяем все записи данного отправителя за 19 число. Получаются записи вида: " 09:50:14.129 4 IMAP-019365([10.10.5.1]) Submit from: su@mrglife.ru"
awk '{print $3}' - нас интересует только третий столбец (у меня IMAP, у себя можете поправить, если не так). Получаются записи вида IMAP-019365([10.10.5.1]). cut --complement -b '12-24' - убираем лишние символы ([10.10.5.1]) - получаются записи вида IMAP-019365. Вот тут надо осторожно посчитать, какие именно символы убирать (у меня с 12 по 24), дабы не стереть лишнего :)
вывод перенаправляем в файл /tmp/submit
rm -f /tmp/submit1 - стираем на всякий случай, если есть /tmp/submit1
while read string ; do - считываем построчно записи из файла /tmp/submit1...
grep $string /var/CommuniGate/SystemLogs/2009-05-19.log и отсеиваем по совпадению лог-файл...
grep "Submit to: " - отсеиваем дополнительно только поля, куда отправлял
awk '{print $1,$6}' - нас интересуют только первый столбец (время отправки) и шестой - куда отправлял.
Собственно, все.
Назаркин Андрей Николаевич
Mezhregiongarant.
MRG LIFE
CIO
> -----Original Message-----
> From: CommuniGate Pro Russian Discussions [mailto:CGatePro@mx.ru]
> Sent: Wednesday, May 20, 2009 7:42 AM
> To: CommuniGate Pro Russian Discussions
> Subject: Re: [CGP] Список адресов
>
> SLES 10 sp 2
>
> > Sed и awk творят чудеса :)
> > Укажите операционную систему, пожалуйста.
> >
> > Назаркин Андрей Николаевич
> > Mezhregiongarant.
> > MRG LIFE
> > CIO
> >
> >> -----Original Message-----
> >> From: CommuniGate Pro Russian Discussions [mailto:CGatePro@mx.ru]
> >> Sent: Tuesday, May 19, 2009 4:17 PM
> >> To: CommuniGate Pro Russian Discussions
> >> Subject: [CGP] Список адресов
> >>
> >> Доброго времени суток !
> >> Подскажите плз возможно ли получить список всех адресов из
> >> /var/CommuniGate/SystemLogs на которые были отправлены письма
> >> конкретным
> >> пользователем ?
> >>
>
>
> ##################################################################
> Вы получили это сообщение потому, что подписаны на список рассылки
> <CGatePro@mx.ru>.
>
> Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru>
> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru>
> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>
> Для административных запросов адрес <CGatePro-request@mx.ru>
> Архив списка: http://mx.demos.su/lists/cgp-russian/
>
>
Получено Wed May 20 05:16:23 2009
Этот архив был сгенерирован hypermail 2.1.8 : Fri 24 Apr 2015 - 16:16:29 MSK