Я пытаюсь искать неизвестную строку (Идентификатор сообщения) в журнале на основе известной строки (адрес получателя), и затем grep неизвестная строка для вывода всей соответствующей информации о журнале. Я могу использовать grep и сократить для вывода неизвестной строки (строк), но оттуда я озадачен при передаче этого к grep. Я привык канал для xargs grep, и это не производит вывод, который я ищу. Вот команда, которую я использую для grep и сокращения:
grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6
Это производит вывод всех неизвестных строк для сообщений, обработанных Постфиксом для emailaddress. Когда я передаю по каналу к xargs, я получаю "grep:: Никакой такой файл или каталог:
grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 | xargs grep /var/log/maillog
Спасибо за помощь.
Я немного поиграл со своими собственными почтовыми журналами. Попробуйте
grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 | grep -f - /var/log/maillog
-f - прочитает список строк для поиска из stdin.
.Я написал скрипт на perl, который позволяет вам передавать любую информацию из лога, которую вы хотите, и он выведет все строки с одинаковым идентификатором очереди (одним проходом через файл и без ограничения размера файла):
https://github.com/brablc/postfix-tools/blob/master/pflogrep