solaris 10 + отображать 2 строки после матча grep?

Я хочу совместить, например:

Строка e1000g0 из списка lltconfig -a , а затем для отображения двух строк после строки e1000g0

поэтому я получаю только строки:

Node 0 du1a : 00:21:28:14:76:68 Node 1 du1b : 00:21:28:59:72:C4 permanent 

пожалуйста, совет, как получить только две линии после?

полный пример из (lltconfig -a list):

  lltconfig -a list Link 0 (e1000g0): Node 0 du1a : 00:21:28:14:76:68 Node 1 du1b : 00:21:28:59:72:C4 permanent Link 1 (e1000g1): Node 0 du1a : 00:21:28:14:76:69 Node 1 du1b : 00:21:28:59:72:C5 permanent Link21 (e1000g2): Node 0 du1a : 00:21:28:14:76:49 Node 1 du1b : 00:21:28:59:72:A5 permanent 

Я также пробую это (но его работа только для linux, а не на solaris – 🙁

  lltconfig -a list | grep -A 4 "e1000g0" | grep -v "e1000g0" grep: illegal option -- A Usage: grep -hblcnsviw pattern file . . . 

Попробуйте сделать это:

 var='Link 0' lltconfig -a list | awk '/'"$var"'/{l=1;next} /(^$)/{l=0} l==1 {print}' 

Если вы хотите что-то более общее:

 grep="pattern" # the string where we begin max=4 # the number of lines after the matched pattern awk '/'"$grep"'/{l=1;count=NR;next} l>0 && NR-count < '"$max"+1' {print}' 

(проверено на Solaris11 )

Solaris 11 имеет GNU egrep, который может предоставлять контекстные строки с использованием -A или -B.

Или, если у вас нет GNU grep / egrep, сценарий cgrep адресу http://www.intuitive.com/wicked/showscript.cgi?036-cgrep.sh предоставляет контекстный grep с аналогичной функцией.

lltconfig -a list | awk 'BEGIN{n=0}/e1000g0/{n=NR}n&&NR>n&&NR<n+3{print}'