shell脚本--在n个文件中检索字符串然后算总数

    rachel 让我帮着写一个脚本,从一个目录下面所有的子目录(以日期为名)下面所有的日志文件中,搜索字符串'ANI is',然后算出来多少行。
[ xiaoqi@localhost Call ] $  ls - d 2007 - 07 - 3 *
2007- 07- 30 2007- 07- 31
[ xiaoqi@localhost Call ] $ ls 2007 - 07 - 3 *
2007- 07- 30:
VAGFlowExecutor_2007- 07- 30_07. log VAGFlowExecutor_2007- 07- 30_15. log
VAGFlowExecutor_2007- 07- 30_08. log VAGFlowExecutor_2007- 07- 30_16. log
VAGFlowExecutor_2007- 07- 30_09. log VAGFlowExecutor_2007- 07- 30_17. log
VAGFlowExecutor_2007- 07- 30_10. log VAGFlowExecutor_2007- 07- 30_18. log
VAGFlowExecutor_2007- 07- 30_11. log VAGFlowExecutor_2007- 07- 30_19. log
VAGFlowExecutor_2007- 07- 30_12. log VAGFlowExecutor_2007- 07- 30_20. log
VAGFlowExecutor_2007- 07- 30_13. log VAGFlowExecutor_2007- 07- 30_21. log
VAGFlowExecutor_2007- 07- 30_14. log VAGFlowExecutor_2007- 07- 30_22. log

2007- 07- 31:
VAGFlowExecutor_2007- 07- 31_07. log VAGFlowExecutor_2007- 07- 31_14. log
VAGFlowExecutor_2007- 07- 31_08. log VAGFlowExecutor_2007- 07- 31_15. log
VAGFlowExecutor_2007- 07- 31_09. log VAGFlowExecutor_2007- 07- 31_16. log
VAGFlowExecutor_2007- 07- 31_10. log VAGFlowExecutor_2007- 07- 31_17. log
VAGFlowExecutor_2007- 07- 31_11. log VAGFlowExecutor_2007- 07- 31_19. log
VAGFlowExecutor_2007- 07- 31_12. log VAGFlowExecutor_2007- 07- 31_20. log
VAGFlowExecutor_2007- 07- 31_13. log
     因为子目录和里面的文件都有一定规则,所以写起来比较简单。用两个for就搞定了。
[ xiaoqi@localhost Call ] $  cat list . sh
#! / bin/bash
for i in . / 20*
do
        for j in $i/*
        do
        echo "$j" " " ` grep - Ra 'ANI is' $j| wc - l`
        done
done

for i in . / 20*
do
echo "---------------------------------"
echo $i" " ` grep - Ra 'ANI is' $i| wc - l`
echo "---------------------------------"
done

echo " "
echo "---------------------------------"
echo "just a moment ; the total is ...."
echo "the total is " ` grep - Ra 'ANI is' * | wc - l`
echo "---------------------------------"
 

    执行效果如下:
[xiaoqi@localhost Call]$ ./list.sh

./2007-07-30
./2007-07-30/VAGFlowExecutor_2007-07-30_07.log 3
./2007-07-30/VAGFlowExecutor_2007-07-30_08.log 5
./2007-07-30/VAGFlowExecutor_2007-07-30_09.log 31
./2007-07-30/VAGFlowExecutor_2007-07-30_10.log 24
./2007-07-31
./2007-07-31/VAGFlowExecutor_2007-07-31_07.log 0
./2007-07-31/VAGFlowExecutor_2007-07-31_08.log 6
./2007-07-31/VAGFlowExecutor_2007-07-31_09.log 7
./2007-07-31/VAGFlowExecutor_2007-07-31_10.log 15
---------------------------------
./2007-07-30         199
---------------------------------
---------------------------------
./2007-07-31         111
---------------------------------

---------------------------------
just a moment ; the total is ....
the total is 23418
---------------------------------
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值