Avec grep, je veux sélectionner toutes les lignes qui correspondent à un motif et qui ne correspondent pas à un autre motif. Je veux pouvoir utiliser une seule invocation de grepafin de pouvoir utiliser l' --after-contextoption (ou --before-context, ou --context).
-vn'est pas viable ici, car il annule tous les modèles que je passe à l' grepaide de l' -eoption.
Exemple
Je veux rechercher des lignes correspondant needle, en ignorant les lignes correspondant ignore me, avec une ligne du contexte suivant.
Voici mon fichier d'entrée:
one needle ignore me
two
three
four needle
five
La sortie que je veux est:
four needle
five
Comme vous pouvez le voir, cette solution naïve ne fonctionne pas:
$ cat file | grep --after-context=1 needle | grep -v 'ignore me'
two
---
four needle
five
ack