尝试使用SunOS 5.9来搜索周围的行,通常我会使用grep和-B和-A来执行此操作:
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将是:
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中这样做?
答案 0 :(得分:0)
试试这个:
sed -n '/Mirror/,/Pass:/{/Pass:/d;p;}' file
输出:
d6: Mirror Submirror 0: d61 State: Okay Submirror 1: d62 State: Okay
答案 1 :(得分:0)
在您的示例中,您似乎只想在匹配后打印行。如果是这种情况,那么你可以使用这个awk脚本:
awk '/Mirror/ { c = 5 } c && c--' file
当模式匹配时,它将c
设置为5,只要c
大于0(接下来的4行),就会打印行。