Mit grepmöchte ich alle Linien auswählen, die einem Muster entsprechen und die keinem anderen Muster entsprechen. Ich möchte in der Lage sein, einen einzelnen Aufruf von zu verwenden, grepdamit ich die --after-contextOption (oder --before-context, oder --context) verwenden kann.
-vist hier nicht realisierbar, da es alle Muster negiert, die ich grepmit der -eOption übergebe.
Beispiel
Ich möchte nach übereinstimmenden needleZeilen suchen und dabei die übereinstimmenden Zeilen ignore memit einer Zeile des folgenden Kontexts ignorieren .
Hier ist meine Eingabedatei:
one needle ignore me
two
three
four needle
five
Die Ausgabe, die ich möchte, ist:
four needle
five
Wie Sie sehen können, funktioniert diese naive Lösung nicht:
$ cat file | grep --after-context=1 needle | grep -v 'ignore me'
two
---
four needle
five
ack