grep周围的行在SunOS 5.9



尝试使用SunOS 5.9对周围行进行grep,通常我会使用-B和-A来grep:

grep -B 3 -A 2 foo README.txt

但是,在SunOS 5.9中,grep不支持此功能,并出现以下错误信息:

grep: illegal option -- A

下面是我从"man grep"得到的结果:http://www.freebsd.org/cgi/man.cgi?query=grep&apropos=0&sektion=0&manpath=SunOS+5.9&format=html

我的例子将是尝试grep关键字"镜像"和那些行表示其子镜像的状态。grep的输入将是:

d6: Mirror
    Submirror 0: d61
      State: Okay
    Submirror 1: d62
      State: Okay
    Pass: 1
    Read option: ***
    Write option: ***
    Size: ***
d61: Submirror of d6
    State: Okay
    Size: ***
    Stripe 0:
    Device     Start Block  Dbase        State Reloc Hot Spare
    CCC          0     No            Okay   Yes

d62: Submirror of d6
    State: Okay
    Size: ***
    Stripe 0:
    Device     Start Block  Dbase        State Reloc Hot Spare
    BBB          0     No            Okay   Yes

在上面的例子中,我想得到

d6: Mirror
    Submirror 0: d61
      State: Okay
    Submirror 1: d62
      State: Okay

如何在SunOS 5.9中这样做?

试试这个:

sed -n '/Mirror/,/Pass:/{/Pass:/d;p;}' file
输出:

<>之前d6:镜子镜像0:d61状态:好的子镜像1:d62状态:好的

从您的示例中,看起来您只希望在匹配之后打印行。如果是这种情况,那么您可以使用这个awk脚本:

awk '/Mirror/ { c = 5 } c && c--' file

当模式匹配时,将c设置为5,并且只要c大于0(即接下来的4行)就打印行。

相关内容

  • 没有找到相关文章

最新更新