Ich möchte nach einem Vorkommen in einer Textdatei suchen und dann nach jedem gefundenen Vorkommen die folgenden N Zeilen drucken. Irgendwelche Ideen?
quelle
Ich möchte nach einem Vorkommen in einer Textdatei suchen und dann nach jedem gefundenen Vorkommen die folgenden N Zeilen drucken. Irgendwelche Ideen?
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
awk '/regex/{p=2} p > 0 {print $0; p--}' filename
- funktioniert, deins nicht.Verwenden Sie das
-A
Argument,grep
um anzugeben, wie viele Zeilen über die Übereinstimmung hinaus ausgegeben werden sollen.quelle
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:
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.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.quelle