我正在编写一个shell脚本来解析日志文件,并提取sudo成功和/或失败的所有实例。我现在意识到,使用shell的正则表达式可能会更容易,但我不想花时间去挖掘(现在我正在付出代价)。无论如何:用于解析日志文件的Shell脚本
sudobool=0
sudoCount=0
for i in `cat /var/log/auth.log`;
do
for word in $i;
do
if $word == "sudo:"
then
echo "sudo found"
sudobool=1;
sudoCount=`expr $sudoCount + 1`;
fi
done
sudobool=0;
done
echo "There were " $sudoCount " attempts to use sudo, " $sudoFailCount " of which failed."
所以,我对我写的代码的理解:读取auth.log并逐行分解,这是存储在我。我检查每个单词是否是sudo,如果是,我们翻转bool并增加。一旦我们完成了解析该行,重置bool并移动到下一行。
然而,根据我的输出判断,shell正试图执行日志文件的单个单词,通常返回'$ word:not found'。
所有伟大的补充,我的知识基础。谢谢! –