Назад | Перейти на главную страницу

Legal Discovery - как искать файлы .eml по ключевым словам и копировать результаты в другую папку на macOS / Unix?

У меня есть почтовый сервер Kerio Connect, который сохраняет все свои электронные письма в относительно стандартной структуре папок спула почты в виде необработанных файлов .eml. Мне было поручено выполнить поиск по ключевым словам в некоторых почтовых ящиках пользователей по ключевым словам и адресам электронной почты. Затем мне нужно скопировать найденные файлы в другую папку.

Структура папок будет примерно такой:

mail
  example.com
    user1
      INBOX
      Sent Items
      etc
    user2
      INBOX
      etc

Сложность возникает из-за того, что электронные письма, как файлы .eml, именуются в каждой папке с серийным номером, поэтому, если я нахожу электронное письмо в почтовом ящике пользователя user1 с именем 00000123.eml, а другое электронное письмо в их отправленных с тем же именем имеет одно из ключевые слова в нем, я не хочу, чтобы одно копировалось поверх другого.

Мне также нужно выполнить некоторые поиски по ключевым словам с нечувствительностью к регистру, чтобы я мог искать «ключевое слово» и совпадать с ключевым словом и ключевым словом и ключевым словом KEYWORD.

Я думаю, что следующая команда сделает то, что я хочу, но я не уверен на 100%, и я использую это более ~ 100 ГБ файлов eml, поэтому я хочу убедиться, что все правильно, прежде чем оставлять его для запуска .

grep -i -r -l -e "user1@example.com|anotheruser@example.com|keyword1|anotherkeyword|evenmore" /usr/local/kerio/mailserver/store/mail/example.com/user1/ | xargs -I{} rsync -Rv {} /Volumes/Data/Email\ Discovery/201706/user1/

По моим подсчетам, это будет выполнять поиск без учета регистра (-i) рекурсивно (-r), печатать только имена файлов (-l) и использовать регулярное выражение (-e), а затем передавать результаты в rsync, который рекурсивно копирует их в папку назначения и (надеюсь) сохранить ту же структуру папок.

Есть ли более эффективный способ сделать это?