为什么 grep 不返回 from 行?

为什么 grep 不返回 from 行?

在另一个论坛上提问 - 还没有答案,所以我想在这里提问。我必须转义 grep 行中的反斜杠,才能使反斜杠显示在这篇文章中。

我有这个,但是 grep 没有返回 from 行。这与行的 reply= 部分有关。如果我将其修改为 say relay=exampleXXX111.examplf.ex.examplf.com,它会很好地输出该行。

还有其他方法可以获取此信息,但我希望针对这个具体示例进行解释。

echo "4 月 4 日 05:00:24 示例 sendmail[3365]: x3440OxC003366: from=, size=10181, class=0, nrcpts=1, msgid=<[电子邮件保护]>,proto=SMTP,守护进程=MTA,relay=exampleXXX111.examplf.ex.example.com [10.100.10.10]” | grep -v “to=.*\.example\.com”

无输出


echo "4 月 4 日 05:00:24 示例 sendmail[3365]: x3440OxC003366: from=, size=10181, class=0, nrcpts=1, msgid=<[电子邮件保护]>,proto=SMTP,守护进程=MTA,中继=exampleXXX112.examplf.ex.examplf.com [10.100.10.10]” | grep -v “to=.*\.example\.com”

输出:

4 月 4 日 05:00:24 示例 sendmail[3365]: x3440OxC003366: from=, size=10181, class=0, nrcpts=1, msgid=<[电子邮件保护]>,proto=SMTP,守护进程=MTA,中继=exampleXXX112.examplf.ex.examplf.com [10.100.10.10]

答案1

您的第一个示例包含 pro至=SMTP,...例如.example.com,因此触发 grep 条件并且 -v 将抑制该行。

使用grep -v '\sto=.*.example.com'应该可以解决问题。

相关内容