红联Linux门户
Linux帮助

终于解决了这个问题

发布时间:2009-08-14 21:59:02来源:红联作者:jagub
记得前几个月我在这里提过一个问题,没有人回答

问题是这样的
用tail监视日志文件,因为这个日志的内容太多也太复杂,
所以只想在碰到 SQL[ 这个词的时候开始输出日志
到出现 ] 的时候结束输入。
问题是SQL[ 和 ] 之间会有很多换行,
而且要不停顿地监视文件

在收到了7月份的奖励书《Linux命令行和shell脚本编程宝典》
以后,全面的学习了shell,终于成功地解决了这个问题[code]#!/bin/bash
found=0
function filter {
while read line
if (($found == 1))
then
chk=`echo $line | grep -c ']'`
else
chk=`echo $line | grep -c 'SQL\['`
fi
if (($chk > 0))
then
if (($found == 1))
then
echo "]"
echo
fi
found=$[1 - $found]
fi
do
if (($found == 1))
then
echo $line
fi
done
}
tail -n 100 -f $1 | filter
[/code]譬如把上述的脚本保存为test.sh
然后chmod +x test.sh
就可以用./test.sh 日志文件名
来监视文件了

太感谢红联了
文章评论

共有 13 条评论

  1. zhoupingxiaaa 于 2010-05-22 23:38:43发表:

    一起学习咯

  2. sclzwj 于 2010-01-05 19:12:28发表:

    学习了。。。

  3. 欢乐时光 于 2009-12-25 02:33:06发表:

    恭喜啊!

  4. hery_yang 于 2009-12-13 13:05:50发表:

    很羡慕楼主有好书啊,苦于好书缺乏

  5. dxplrct 于 2009-09-16 09:01:31发表:

    kanbudong

  6. shenhao0129 于 2009-09-15 22:03:15发表:

    呵呵!恭喜啊!看来我也要好好的学习了!都落后很都多了

  7. jagub 于 2009-08-30 22:20:21发表:

    这个问题困扰了我半年之久。
    看书学习了两天就搞定了。

    有一本好书的确是不一样的!

  8. cwqing1973 于 2009-08-30 20:08:05发表:

    命令包括的内容是太多了,各种命令包含了电脑各个方面的知识,……

  9. 35749810 于 2009-08-29 19:08:50发表:

    恭喜楼主

  10. yangshan 于 2009-08-16 17:14:38发表:

    好贴 复制一下下!:0wmjh(1

  11. l460618498 于 2009-08-15 01:05:21发表:

    我可以领书吗??

  12. rxotav 于 2009-08-15 00:06:32发表:

    恭喜楼主

  13. wangyu 于 2009-08-14 23:36:23发表:

    你的问题太有技术了,一般人答不了哈