Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:mail从grep返回多个文件_Linux_File_Email_Grep - Fatal编程技术网

Linux:mail从grep返回多个文件

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但它只发送一封电子邮件 谢谢如果您

我想在日志文件中查找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
但它只发送一封电子邮件


谢谢

如果您希望每个文件有一封邮件,您需要作为
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