如何从文本文件中检查不同来源和邮件的记录计数,记录不等于0

如何从文本文件中检查不同来源和邮件的记录计数,记录不等于0

我有一个运行并生成计数的选择查询。它将答案导出到文本文件中,该文件具有以下记录,例如:

    Unprocessed record for A Sources
----------------------Unprocessed record count for ABC SOURCE ------------------
abc_count=            0
--------------------Unprocessed record count for CDE Source --------
CDE_count=            0
-----------------------Unprocessed record count for DEF Source -----------------
DEF_count=            0
------------------Unprocessed record count for GHI Source ----------------------
GHI_count=            56

我想编写一个 Unix 命令,检查上述源的任何计数是否不等于 0,如果不等于 0,则将其邮寄给所需的团队。

答案1

可以使用来获取第二列grep所需进程的输出,如果其为零, 则为您想要的消息或带有所需主题和地址的消息。 您可以迭代多个预定义字符串
awktest
echomailmailx

下面的答案完全基于问题中给出的输出,并假设进一步的检查将具有相同的模式输出。

for CHECK in $(awk '{print $1}' output.txt | grep count=| cut -d"=" -f1)
do
if [ $(grep $CHECK output.txt | awk '{print $2}') -ne 0 ]
then  
echo "$(grep $CHECK output.txt")" | mailx -s "CHECK ABC PROCESS" [email protected]
fi
done

答案2

 awk '/[[:digit:]]/ { if ($2 == 0) { system("echo \""$0"\" | mailx -s \"Check Count\" [email protected]") } }' countfile

您可以使用 awk 并检查所有包含数字的行。然后使用awk的系统函数发送电子邮件。

免责声明 - 在实施此类解决方案之前需要判断与命令注入相关的风险。

相关内容