Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Выборка из текстового файла по шаблону (http://forum.oszone.net/showthread.php?t=338368)

DSU 22-12-2018 14:08 2847578

Выборка из текстового файла по шаблону
 
Помогите в автоматизации выборки.
Есть текстовый лог (на 800мб) с записями такого вида:

[28/Nov/2018 10:34:30] Recv: Queue-ID: 5bfe5316-0000437d, Service: SMTP, From: <t.kaluga@mail.com.ua>, To: <a.nanana@mail2.com.ua>, Size: 17991, Sender-Host: 220.15.174.19, User: t.kaluga@mail.com.ua, SSL: yes, Subject: Re: Тема; ТД ТОВ, Msg-Id: <41AB9C9A-59B1-4CD2-A833-B2D41F58182F@mail.com.ua>
[28/Nov/2018 10:34:30] Sent: Queue-ID: 5bfe5316-0000437d, Recipient: <a.malina@mail.com.ua>, Result: delivered, Status: 2.1.5 , Remote-Host: 127.0.0.1, Msg-Id: <41AB9C9A-59B1-4CD2-A833-B2D41F58182F@mail.com.ua>
[28/Nov/2018 10:40:53] Recv: Queue-ID: 5bfe5493-0000437e, Service: SMTP, From: <k.lopata@gmail.com>, To: <o.tuchka@mail.com.ua>, Size: 1918722, Sender-Host: 154.38.117.35, SSL: yes, Subject: Письмо, Msg-Id: <D8EF8B03-AF53-4FD0-A919-93A3223CD0FC@gmail.com>


Нужно найти все позиции, где отправитель t.kaluga@mail.com.ua (для примера) и составить список всех уникальных адресатов, кому он высылал письма (a.nanana@mail2.com.ua в данном случае).
Ключевые слова для поиска, получается, можно использовать "SMTP, From: <t.kaluga@mail.com.ua>", а список составить из адресов, которые идут после "To: "
Одинаковые, понятное дело, не указывать.
Спасибо!

Iska 22-12-2018 14:39 2847585

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

Kazun 22-12-2018 14:46 2847587

PowerShell:

Код:

sls f.txt -Pattern "From: <t.kaluga@mail.com.ua>, To: <(.+)>," | Foreach {$_.Matches.Groups[1].Value} | Sort -Un

Busla 22-12-2018 15:12 2847591

Цитата:

Цитата DSU
Ключевые слова для поиска, получается, можно использовать "SMTP, From: <t.kaluga@mail.com.ua>", а список составить из адресов, которые идут после "To: " »

Kerio отбрасывает имя, или надежда на то, что оно не указано в почтовом клиенте?
Я бы не ориентировался только на To:, есть же ещё cc, bcc

Цитата:

Цитата Kazun
To: <(.+)>, »

А если получателей у письма несколько?

DSU 22-12-2018 15:32 2847596

Ух-ты как все элегантно просто, когда знаешь.
Аж не верится, что настолько. Заклинание, магия :)
Kazun, спасибо за частичку знаний и помощь!
Подставил нужные значения, все получилось.
Iska, спасибо за готовность помочь.
Это так же ценно. Это основа )

Хммм. Да. А если получателей несколько...

DSU 22-12-2018 15:53 2847600

Все нормально. У Керио на каждого адресата - отдельная запись заносится.


Время: 18:16.

Время: 18:16.
© OSzone.net 2001-