Ответ 1
grep -A 1
опция даст вам одну строку после; -B 1
даст вам одну строку раньше; и -C 1
объединяет оба параметра, чтобы дать вам одну строку как до, так и после.
Возможный дубликат:
grep файл, но показывать несколько окружающих линий?
Мне нужно разобрать очень большой файл, и я хочу использовать команду grep (или любой другой инструмент).
Я хочу выполнить поиск в каждой строке журнала для слова FAILED
, затем распечатать строку выше и ниже каждой соответствующей строки, а также соответствующую строку.
id : 15
Satus : SUCCESS
Message : no problem
id : 15
Satus : FAILED
Message : connection error
И мне нужно напечатать:
id : 15
Satus : FAILED
Message : connection error
grep -A 1
опция даст вам одну строку после; -B 1
даст вам одну строку раньше; и -C 1
объединяет оба параметра, чтобы дать вам одну строку как до, так и после.
Используйте опцию -B и -A
grep --help
...
-B, --before-context=NUM print NUM lines of leading context
-A, --after-context=NUM print NUM lines of trailing context
...
Использовать -A и -B-переключатели (средние строки-после и строки-до):
grep -A 1 -B 1 FAILED file.txt