Você pode usar um subshell. Você pode enviar a saída de qualquer coisa que você quiser, e tudo sairá pelo pipe.
(cat /foo ; echo bar ; pflogsumm <args> ) | sendmail <address>
No Linux (Debian), como posso prefixar a saída padrão de um comando com uma ou várias linhas antes de direcioná-lo para um segundo comando?
Isto é para enviar a saída de um comando usando sendmail assim:
pflogsumm <args> | sendmail <address>
Eu não posso especificar uma linha de assunto desta forma, já que o sendmail extrai os campos de cabeçalho da entrada que é alimentada. Eu quero, portanto, prefixar a saída pflogsumm usando sed.
Obrigado.
/ David
Você pode usar um subshell. Você pode enviar a saída de qualquer coisa que você quiser, e tudo sairá pelo pipe.
(cat /foo ; echo bar ; pflogsumm <args> ) | sendmail <address>
o awk fará o que você quiser.
Por exemplo
# 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
Os prefixos acima preenchem a string printf antes de sua saída.
Seu exemplo seria
pflogsumm <args> | awk ' { if (NR == 1) printf("Line 1\nLine 2\n"); print; }' | sendmail <address>