Відповіді:
У Grep є такі варіанти, які дозволять вам це робити (і подібні речі). Ви можете переглянути детальну сторінку для отримання додаткової інформації:
-A num Друк числових рядків проміжного контексту після кожного матчу. Дивіться також параметри -B та -C.
-B num Друк числових рядків провідного контексту перед кожним матчем. Дивіться також параметри -A та -C.
-C [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
- працює, твій ні.