请教大虾们一个shell编程的问题!
时间:2011-03-18
来源:互联网
a.txt的内容:
。。。
a-000
3月17日
ok=0
ok=111
ok=0
a-000
3月18日
ok=0
ok=0
ok=0
a-000
3月19日
ok=210
ok=333
ok=91
a.txt实际是个日志文件,我想取出最近一天的系统运行数据,要能计算出ok=0出现几次,ok<>0出现几次
请大虾们不吝赐教,谢谢!
作者: lon3991 发布时间: 2011-03-18
big=0
small=0
equ=0
for i in `tail -3 a.txt|cut -f2 -d"="`;do
(($i > 0))&&let big=big+1
(($i < 0))&&let small=small+1
(($i == 0))&&let equ=equ+1
done
echo $big
echo $small
echo $equ
作者: 昭襄王 发布时间: 2011-03-18
结果是:
./test.sh: line 6: ((: 23:00:10 > 0: syntax error in expression (error token is ":00:10 > 0")
./test.sh: line 7: ((: 23:00:10 < 0: syntax error in expression (error token is ":00:10 < 0")
./test.sh: line 8: ((: 23:00:10 == 0: syntax error in expression (error token is ":00:10 == 0")
./test.sh: line 6: ((: !! > 0: syntax error: operand expected (error token is "> 0")
./test.sh: line 7: ((: !! < 0: syntax error: operand expected (error token is "< 0")
./test.sh: line 8: ((: !! == 0: syntax error: operand expected (error token is "== 0")
3
0
5
作者: lon3991 发布时间: 2011-03-18
给出真实的原始文件
作者: 昭襄王 发布时间: 2011-03-18
这是真实a.txt的最后一大段:
..........省略几万字
开始......完成!
Connected to ORACLE !
开始......完成!
Mon Oct 25 23:00:11 CST 2010
rj finished !!
rj start !!
Tue Oct 26 23:00:01 CST 2010
Connected to ORACLE !
开始......完成!
oiErr=0
开始......非月结日!
ERROR=2102
Connected to ORACLE !
开始......完成!
oiErr=2108,23:00:08
开始......结束!
oiErr=2108,23:00:08
开始......完成!
oiErr=0,23:00:08
开始......完成!
oiErr=0,23:00:08
开始......完成!
oiErr=0,23:00:09
开始......完成!
oiErr=0,23:00:09
Connected to ORACLE !
开始切换日结日期......完成!返回结果oiErr 0! 当前日结日期为 20101027
Connected to ORACLE !
开始......完成!
开始......完成!
Connected to ORACLE !
开始......失败 ERROR=4520
Tue Oct 26 23:00:10 CST 2010
rj finished !!
rj start !!
Wed Oct 27 23:00:01 CST 2010
Connected to ORACLE !
开始......完成!
oiErr=0
开始......非月结日!
ERROR=2102
Connected to ORACLE !
开始......完成!
oiErr=2108,23:00:08
开始......结束!
oiErr=2108,23:00:08
开始......完成!
oiErr=0,23:00:08
开始......完成!
oiErr=0,23:00:08
开始......完成!
oiErr=0,23:00:09
开始......完成!
oiErr=0,23:00:09
Connected to ORACLE !
开始切换日结日期......完成!返回结果oiErr 0! 当前日结日期为 20101028
Connected to ORACLE !
开始......完成!
开始......完成!
Connected to ORACLE !
开始......失败 ERROR=4520
Wed Oct 27 23:00:10 CST 2010
rj finished !!
---------------------------------------------------------
我想统计最近一个"rj start !!"后,总共出现了几次oiErr=0,几次ERROR=,
并把结果写入b.log,而且要写入rj start !!这行下的那行开始时间,写入rj finished !!上的那行结束时间
作者: lon3991 发布时间: 2011-03-18
作者: 昭襄王 发布时间: 2011-03-18
#! /bin/bash
equ=0
for i in `tail -47 a.txt`;do
if [ `expr substr "$i" 1 7` = "oiErr=0" ]
then
let equ=equ+1
fi
done
echo $equ>b.log
作者: lon3991 发布时间: 2011-03-18
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28