Ответы:
Grep имеет следующие параметры, которые позволят вам сделать это (и тому подобное). Возможно, вы захотите взглянуть на справочную страницу для получения дополнительной информации:
-A num Печатать num строк конечного контекста после каждого совпадения. Смотрите также параметры -B и -C.
-B num Печатать количество строк переднего контекста перед каждым совпадением. Смотрите также параметры -A и -C.
-C [num] Вывести num строк начального и конечного контекста, окружающих каждое совпадение. По умолчанию 2 и эквивалентно -A 2 -B 2. Примечание: между опцией и ее аргументом не должно быть пробелов.
Используйте -A
аргумент, чтобы grep
указать, сколько строк за пределами соответствия вывести.
Вывести N строк после совпадения строк
Вы можете использовать grep
с -A n
опцией для печати N строк после сопоставления строк.
Например:
$ cat mytext.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
$ grep -wns Line5 mytext.txt -A 2
5:Line5
6-Line6
7-Line7
Другие связанные варианты:
Вывести N строк перед соответствием строк
Используя -B n
опцию, вы можете напечатать N строк перед соответствием строк.
$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5
Вывести N строк до и после соответствия строк
Используя -C n
опцию, вы можете напечатать N строк до и после соответствия строк.
$ grep -wns Line5 mytext.txt -C 2
3-Line3
4-Line4
5:Line5
6-Line6
7-Line7
awk '/regex/{p=2} p > 0 {print $0; p--}' filename
- работает, твой нет.