Odpowiedzi:
Grep ma następujące opcje, które pozwolą ci to zrobić (i podobne rzeczy). Możesz zajrzeć na stronę podręcznika, aby uzyskać więcej informacji:
-A num Wydrukuj liczbę linii kontekstu końcowego po każdym dopasowaniu. Zobacz także opcje -B i -C.
-B num Wydrukuj liczbę linii wiodącego kontekstu przed każdym dopasowaniem. Zobacz także opcje -A i -C.
-C [num] Drukuj num linii wiodącego i końcowego kontekstu otaczającego każde dopasowanie. Domyślnie jest to 2 i jest równoważne -A 2 -B 2. Uwaga: między opcją a jej argumentem nie można podać białych znaków.
Użyj -A
argumentu, aby grep
określić liczbę wierszy poza dopasowaniem do wyniku.
Wydrukuj N linii po dopasowaniu linii
Możesz użyć grep
z -A n
opcją drukowania N linii po dopasowaniu linii.
Na przykład:
$ 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
Inne powiązane opcje:
Wydrukuj N linii przed dopasowaniem linii
Za pomocą -B n
opcji możesz wydrukować N linii przed dopasowaniem linii.
$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5
Wydrukuj N linii przed i po dopasowaniu linii
Za pomocą -C n
opcji możesz wydrukować N linii przed i po dopasowaniu linii.
$ 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
- działa, twoje nie.