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, который будет рекурсивно копировать их в Папка назначения и (мы надеемся) сохраняют ту же структуру папок.
Есть ли более эффективный способ сделать это?