Antworten:
Grep bietet die folgenden Optionen, mit denen Sie dies tun können (und ähnliche Dinge). Weitere Informationen finden Sie in der Manpage :
-A num Gibt nach jeder Übereinstimmung num Zeilen des nachfolgenden Kontexts aus. Siehe auch die Optionen -B und -C.
-B num Gibt vor jeder Übereinstimmung num Zeilen des führenden Kontexts aus. Siehe auch die Optionen -A und -C.
-C [num] Gibt num Zeilen des führenden und nachfolgenden Kontexts aus, die jede Übereinstimmung umgeben. Der Standardwert ist 2 und entspricht -A 2 -B 2. Hinweis: Zwischen der Option und ihrem Argument darf kein Leerzeichen angegeben werden.
Wenn Sie GNU haben grep
, ist dies die Option -A
/ --after-context
. Ansonsten können Sie es mit tun awk
.
awk '/regex/ {p = N}
p > 0 {print $0; p--}' filename
Verwenden Sie das -A
Argument, grep
um anzugeben, wie viele Zeilen über die Übereinstimmung hinaus ausgegeben werden sollen.
Drucken Sie N Zeilen nach übereinstimmenden Zeilen
grep
Mit der -A n
Option können Sie N Zeilen nach dem Abgleichen von Zeilen drucken.
Beispielsweise:
$ 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
Andere verwandte Optionen:
Drucken Sie N Zeilen, bevor Sie die Zeilen abgleichen
Mit der -B n
Option können Sie N Zeilen drucken, bevor Sie Zeilen abgleichen.
$ grep -wns Line5 mytext.txt -B 2
3-Line3
4-Line4
5:Line5
Drucken Sie N Zeilen vor und nach dem Abgleichen der Zeilen
Mit der -C n
Option können Sie N Zeilen vor und nach dem Abgleichen von Zeilen drucken.
$ 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
- funktioniert, deins nicht.