у меня есть CSV-файл, который мне нужен для фильтрации писем, помеченных словом «спам», строки выглядят так
email;text;somestatus;mailserver status response; response message
some@mail.com;mx.mail.com;2;connection reset; try later
thisspamshouldmatch@mail.com;somemx.record.com;3;spam message response; connection reset
thisshouldnotmatch@somedomain.net;spammxrecord.com;5;Deferred: lsjdflsdj; try later
shouldmatchspam@too.de;mx-too.de., dsn=4.0.0, stat=Deferred: Connection reset by mx-too.de.;4;Deferred: Connection reset by mx-too.de.
строки 3 и 5 должны совпадать
шаблон должен совпадать, если в первой части csv (символы до первого ';') содержится слово 'spam', он не должен совпадать, если слово находится в других столбцах csv
я пытался с
grep -e "spam[^;]*;\([^;]*;\)\{3\}"
кто-нибудь знает решение? Спасибо