Con grep, voglio selezionare tutte le linee che corrispondono a un modello e che non corrispondono a un altro modello. Voglio essere in grado di utilizzare una singola invocazione in grepmodo da poter utilizzare l' --after-contextopzione (o --before-context, o --context).
-vnon è praticabile qui, poiché annulla tutti i modelli che passo a greputilizzare l' -eopzione.
Esempio
Voglio cercare la corrispondenza delle righe needle, ignorando la corrispondenza delle righe ignore me, con una riga del seguente contesto.
Ecco il mio file di input:
one needle ignore me
two
three
four needle
five
L'output che voglio è:
four needle
five
Come puoi vedere, questa ingenua soluzione non funziona:
$ cat file | grep --after-context=1 needle | grep -v 'ignore me'
two
---
four needle
five
ack