在Linux(Debian)上,如何在将命令的标准输出连接到第二个命令之前,将一个或多个命令的标准输出作为前缀?
这是使用sendmail邮寄命令的输出,如下所示:
pflogsumm <args> | sendmail <address>
我不能用这种方式指定主题行,因为sendmail会从input的input中提取标题字段。 因此,我想使用sed前缀pflogsumm输出。
谢谢。
/大卫
你可以使用一个子shell。 你可以从你想要的任何东西发送输出,它将全部通过pipe道输出。
(cat /foo ; echo bar ; pflogsumm <args> ) | sendmail <address>
awk会做你想做的事情。
例如
# ps | awk ' { if (NR == 1) printf("Line 1\nLine 2\n"); print; }' Line 1 Line 2 PID TTY TIME CMD 23071 pts/0 00:00:00 bash 25655 pts/0 00:00:00 ps 25656 pts/0 00:00:00 awk
上面在输出前添加了printfstring。
你的例子是
pflogsumm <args> | awk ' { if (NR == 1) printf("Line 1\nLine 2\n"); print; }' | sendmail <address>