首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

shell脚本检索文本的有关问题

2013-06-25 
shell脚本检索文本的问题本帖最后由 wokao112358 于 2013-05-10 14:04:59 编辑有一段文本如下:[RUN]AAAAAA

shell脚本检索文本的问题
本帖最后由 wokao112358 于 2013-05-10 14:04:59 编辑 有一段文本如下:
[RUN]AAAAAAAAAAAA
[OK]AAAAAAAAAAA
[RUN]BBBBBBBBBBBBBBBB
[OK]BBBBBBBBBBBBB
[RUN]CCCCCCCCCCCCC
   CCCCCCCCCCCCCC
   CCCCCCCCCCCCCCCCCC
[FAILED]CCCCCCCCCCCC
[RUN]DDDDDDDDDDDDDD
[OK]DDDDDDDDDDDDDDDD

shell脚本中我只需要描红部分中间的内容,请问该怎么写?
怎么在检索到FAILED字符串时再向上检索,然后通过sed来获取内容 shell 检索 sed
[解决办法]
sed是流编辑器,流过去了就是过去了,没法回朔。

换一个思路:是不是你要的行开头都有空格?而要去掉的行开头都是[?这个sed容易做到。

如果上面的办法不行,建议用功能更强的工具来做,awk及其它脚本语言都很容易做到。
[解决办法]

#!/bin/sh
awk 'BEGIN{flag=0;count=0}{
        if($0~/FAILED/)
        {
            flag=3
        }
        if($0~/RUN/)
        {
            flag=1
            count=0
        }
        if(flag==1)
        {
            array[count]=$0
            count+=1
        }
        if(flag==3)
        {
            array[count]=$0
            count+=1
            exit
        }
    }END{for ( i=0;i<count;i++) print array[i]}' 1.txt


[RUN]CCCCCCCCCCCCC
CCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCC
[FAILED]CCCCCCCCCCCC

热点排行