2015-10-07 2 views
0

Попытка Grep окружающих строки с помощью SunOS 5.9, как правило, я хотел бы использовать Grep с -B и -A сделать так:GREP окружающих линий в SunOS 5.9

grep -B 3 -A 2 foo README.txt 

Однако в SunOS 5.9, Grep не поддерживает эту функцию с этим сообщением об ошибке:

grep: illegal option -- A 

ниже, что я получаю от «человека 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?

+0

Этот вопрос, вероятно, лучше на http://unix.stackexchange.com/ – nos

ответ

0

Попробуйте это:

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

Выход:

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

Из вашего примера, это выглядит, как вы только хотите напечатать строки после матча. Если это так, то вы можете использовать этот скрипт: AWK

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

Он устанавливает c до 5, когда шаблон совпадает и печатает строки, пока c больше, чем 0 (так следующие 4 строки).

 Смежные вопросы

  • Нет связанных вопросов^_^