Скрипт для анализа адреса электронной почты из многих текстовых файлов - PullRequest
0 голосов
/ 20 марта 2019

У меня есть коллекция из 338 .log файлов. Это просто текстовые файлы, и никакие два файла не имеют одинакового имени (но все имена файлов начинаются с «rrm-»). Вот пример данных, которые они содержат:

Receiving message #1 : OK (4480 bytes)
From: <djerry@domain.com>
Subject: 2-303-468-02
Message-ID: <PRODVAPP21XvCsLCXPI0035acee@prod.domain.com>
Forwarding to "Some User" <someuser@somedomain.com> : OK

Мне нужен скрипт, который будет открывать каждый файл по одному, анализировать только строки «От:» (может быть 10, может быть 1000 с), чтобы извлечь только адрес электронной почты между символами <и>, и записать вывод в один текстовый файл, один адрес электронной почты на строку. Остальные данные меня не волнуют. Я также не забочусь о проверке адресов электронной почты. Полученный текстовый файл будет выглядеть так:

djerry@domain.com
bob@domain.com
tom@blah.com
jerry@yada.com

Я не программист, я знаю, как все сломать, когда я пытаюсь. Я даже не знаю, какое программное обеспечение / утилиту мне понадобится для этого. Я использую компьютер с Windows 10. Так может сценарий Powershell? Извините за такой вопрос n00b, я действительно ненавижу чувствовать глупость из-за того, что не знаю, как это сделать, или не могу найти Google для простого решения. Цени любую помощь!

1 Ответ

3 голосов
/ 20 марта 2019

Попробуйте следующее:

Select-String -Pattern '^From: .*?<(.+?)>' -Path rrm-* |
  ForEach-Object { $_.Matches.Groups[1].Value } > output.txt
  • ^From: .*?<(.+?)> - это регулярное выражение (регулярное выражение), которое находит строки, начинающиеся с From:, и фиксирует то, что следует между < и >.

    • Часть .*? предназначена для учета (необязательного) фактического имени, предшествующего <...> -общему адресу электронной почты, как обычно; например, "Dana Jerry" <djerry@domain.com>. Спасибо, TheMadTechnician
  • $_.Matches.Groups[1].Value извлекает то, что было захвачено.

  • > output.txt сохраняет результаты в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...