Как заставить grep печатать строки ниже и выше каждой соответствующей строки?

Возможный дубликат:
grep файл, но показывать несколько окружающих линий?

Мне нужно разобрать очень большой файл, и я хочу использовать команду grep (или любой другой инструмент).

Я хочу выполнить поиск в каждой строке журнала для слова FAILED, затем распечатать строку выше и ниже каждой соответствующей строки, а также соответствующую строку.

Например:

id : 15
Satus : SUCCESS
Message : no problem

id : 15
Satus : FAILED
Message : connection error

И мне нужно напечатать:

id : 15
Satus : FAILED
Message : connection error

Ответ 1

grep -A 1 опция даст вам одну строку после; -B 1 даст вам одну строку раньше; и -C 1 объединяет оба параметра, чтобы дать вам одну строку как до, так и после.

Ответ 2

Используйте опцию -B и -A

grep --help
...
-B, --before-context=NUM  print NUM lines of leading context
-A, --after-context=NUM   print NUM lines of trailing context
...

Ответ 3

Использовать -A и -B-переключатели (средние строки-после и строки-до):

grep -A 1 -B 1 FAILED file.txt