Linux:mail从grep返回多个文件
我想在日志文件中查找ora错误Linux:mail从grep返回多个文件,linux,file,email,grep,Linux,File,Email,Grep,我想在日志文件中查找ora错误 grep -L ora- *.log 假设它返回abc.log和xyz.log 然后,我想对每个文件的内容进行cat并动态地发送它 (如cat abc.log | mail-s abc.logmyemail@email.com) 对于上面的示例,我希望收到两封内容为abc.log和xyz.log的电子邮件 我已经试过了 grep-i-L ora-*.log | xargs cat | mailmyemail@email.com但它只发送一封电子邮件 谢谢如果您
grep -L ora- *.log
假设它返回abc.log和xyz.log
然后,我想对每个文件的内容进行cat并动态地发送它
(如cat abc.log | mail-s abc.logmyemail@email.com
)
对于上面的示例,我希望收到两封内容为abc.log和xyz.log的电子邮件
我已经试过了
grep-i-L ora-*.log | xargs cat | mailmyemail@email.com
但它只发送一封电子邮件
谢谢如果您希望每个文件有一封邮件,您需要作为
xargs
的子级循环或运行mail
:
grep -L ora- *.log | xargs -i mailx -s "{}" -a "{}" myemail@email.com
如果要将所有文件附加到单个邮件,则必须生成命令:
cmd="mailx -s logs "
for f in $(grep -L ora- *.log) ; do
cmd="$cmd -a '$f'"
done
eval $cmd myemail@email.com
请注意,当文件名包含单个记号时,这是脆弱的,并且会中断。为什么不在文件中循环<代码>用于$(grep-L ora-…)中的文件;做cat$文件。。。完成谢谢,成功了。我想知道,是否也可以使用find-exec或xargsHow作为xargs的子级运行邮件?我收到邮件:无效选项--aSorry,
mail
不支持附件。改用mailx
。