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 grep
afin de pouvoir utiliser l' --after-context
option (ou --before-context
, ou --context
).
-v
n'est pas viable ici, car il annule tous les modèles que je passe à l' grep
aide de l' -e
option.
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