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 grepjede 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 --colorParameters an grepwird 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, grepjede 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 grepdies 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 9999anstelle von verwenden. -A 9999 -B 9999Ich mache immer:grep -C 9999 pattern file