![为什么 grep 不返回 from 行?](https://linux22.com/image/1587604/%E4%B8%BA%E4%BB%80%E4%B9%88%20grep%20%E4%B8%8D%E8%BF%94%E5%9B%9E%20from%20%E8%A1%8C%EF%BC%9F.png)
在另一个论坛上提问 - 还没有答案,所以我想在这里提问。我必须转义 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'
应该可以解决问题。