今天去某公司面试,做了一道这样的笔试题。
题目:假如日志文件有5种类型(error, debug, info, exception, ver),怎样写一个脚本让他们归类统计错误类型的次数?
提示:日志是一个txt文件,里面有成千上万行数据,里面内容如下:
Error: abd……
Debug: ggsgfggfgfggf
……
……
Info: 13445jflkjfllalss
鉴于昨天只看了一天的shell脚本的编写,当时写出来的不敢保证正确,今天回来试了下,居然能运行,哈哈,不过没有考虑成千上万行的优化问题,这个需要继续学习,把今天的代码贴在下面
#!/bin/bash
# Program:
# get the log.txt different type error number
# History
# 2016-05-25 xiaoxiaoxi First Realse
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
CountError=`cat log.txt | grep Error | wc -l`
CountDebug=`cat log.txt | grep Debug | wc -l`
CountInfo=`cat log.txt | grep Info | wc -l`
CountException=`cat log.txt | grep Exception | wc -l`
CountVer=`cat log.txt | grep Ver | wc -l`
echo "Count Error=" $CountError
echo "Count Debug=" $CountDebug
echo "Count Info=" $CountInfo
echo "Count Exception=" $CountException
echo "Count Ver=" $CountVer
我这里的log.txt是放在当前shell脚本的文件夹下的,如果我们的log.txt不在当前文件夹下,可以将log.txt表示成绝对路径,经试验也是可行的。
其他的优化的和改进的暂时还没有想到。。。。。。。。。