我有以下内容:
ssh $DOMAIN -l root "grep "'$EMAIL@$DOMAIN'" /var/log/maillog | grep retr= | grep -v retr=0 | awk '{ print "'$11'" }' | cut -d, -f1 | cut -d= -f2 | awk '{ t += $1 } END { print "'total: '", t, "' bytes transferred over POP3'"}'"
运行此命令将提供以下输出:
stdin:不是tty
awk:{t + = blah@email.com} END {打印总数:,t,通过POP3传输的字节数}
awk:^表达式
中的char'@'无效
看起来问题出在awk '{ t += $1 }
,因为$ in $ 1,但是我已经尝试了几种不同的方法来逃避这一点而没有运气。任何建议都表示赞赏。
答案 0 :(得分:1)
我不认为这是你运行的命令,因为引号不匹配(有一个多余的"
)。听起来你实际运行的命令扩展为“$ 1”,从而导致awk解释文字电子邮件地址而不是从第一个字段读取。
最后一部分应该是:
awk '{ t += $1 } END { print "total: ", t, " bytes transferred over POP3"}'