Angenommen, ich habe die folgende Datei:
$ cat test
test line 1
test line 2
line without the search word
another line without it
test line 3 with two test words
test line 4
Standardmäßig wird grep
jede Zeile zurückgegeben, die den Suchbegriff enthält:
$ grep test test
test line 1
test line 2
test line 3 with two test words
test line 4
Durch Übergeben des --color
Parameters an grep
wird der Teil der Zeile hervorgehoben, der dem Suchausdruck entspricht, es werden jedoch nur Zeilen zurückgegeben, die den Ausdruck enthalten. Gibt es eine Möglichkeit, grep
jede Zeile in der Quelldatei auszugeben, aber die Übereinstimmungen zu markieren?
Mein derzeitiger schrecklicher Hack, um dies zu erreichen (zumindest bei Dateien, die nicht mehr als 10000 aufeinanderfolgende Zeilen ohne Übereinstimmungen enthalten), ist:
$ grep -B 9999 -A 9999 test test
Wenn grep
dies nicht möglich ist, gibt es ein anderes Befehlszeilentool, das dieselbe Funktionalität bietet? Ich habe damit herumgespielt ack
, aber es scheint auch keine Option dafür zu geben.
-C 9999
anstelle von verwenden. -A 9999 -B 9999
Ich mache immer:grep -C 9999 pattern file