我使用后缀中继从我们的电子邮件服务器发送邮件 我想首先获取某些用户的电子邮件的序列号值,然后使用该值获取他们发送到的电子邮件地址。以下是from和to日志条目的示例。我认为你必须使用awk和sed的组合。
发件人行
Nov 4 14:29:53 server postfix/qmgr[2089]: 42UE78JD7JE: from=<sender@domain.som>, size=1182, nrcpt=1 (queue active)
接收行
Nov 4 14:29:54 server postfix/smtp[10544]: 42UE78JD7JE: to=<user@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.22.27]:25, delay=1, delays=0.02/0.
在上面的示例中,我想从第一行中提取42UE78JD7JE,然后在第二行中找到它。我想你会使用awk来获取“sender@domain.com”行中的序列号值,然后使用该值来搜索具有该值和'to ='的行。
答案 0 :(得分:2)
awk '
$7 ~ /^from=/ {from[$6]=$7}
$7 ~ /^to=/ {to[$6]=$7}
END {for (key in from) if (key in to) print from[key], to[key]}
' file
from=<sender@domain.som>, to=<user@gmail.com>,
答案 1 :(得分:0)
使用awk
awk 'NR==FNR{a[$6]=$6;b[$6]=$7}NR>FNR{if($6 in a){print substr($7,0,length($7)),substr(b[$6],0,length(b[$6]));}}' sender_file reciver_file
输出:
to=<user@gmail.com> from=<sender@domain.som>
这就是我想你想要的。如果你给我们预期的输出,它可以改进