尝试使用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行)就打印行。