2014-06-18 23 views
0

我想grep ora-日誌文件中的錯誤。Linux:郵件從grep返回多個文件

grep -L ora- *.log 

假設它返回abc.log和xyz.log

然後,我想每個文件的內容貓並郵寄動態 (如cat abc.log|mail -s abc.log [email protected]

對於上面的例子,我我期待與abc.log和xyz.log的內容的電子郵件

我試過做 grep -i -L ora- *.log|xargs cat| mail [email protected]但它只發送1封電子郵件。

感謝

+0

爲什麼不循環瀏覽文件? '用於$(grep -L ora- ...)中的文件;做貓$文件...完成' – fedorqui

+0

感謝它的工作。只是爲了讓我知道是否也可以使用find -exec或xargs – snowrock

回答

0

如果你想每個文件一個郵件,你需要循環或運行mail作爲xargs孩子:

grep -L ora- *.log | xargs -i mailx -s "{}" -a "{}" [email protected] 

如果你想要將所有文件附加到一個郵件,然後你必須建立一個命令:

cmd="mailx -s logs " 
for f in $(grep -L ora- *.log) ; do 
    cmd="$cmd -a '$f'" 
done 

eval $cmd [email protected] 

注意,這是脆,斷裂時的文件名包含單蜱。

+0

如何將郵件作爲xargs的子項運行?我收到郵件:無效選項 - a – snowrock

+0

對不起,'郵件'不支持附件。改用'mailx'。 –