Comment faire de sed supprimer les lignes ne correspondant pas par la substitution d'un

En gros, je veux faire ceci:

cat file | grep '<expression>' | sed 's/<expression>/<replacement>/g'

sans avoir à écrire l'expression deux fois:

cat file | sed 's/<expression>/<replacement>/g'

Est-il un moyen de dire sed à ne pas imprimer les lignes qui ne correspondent pas à l'expression régulière dans la commande de substitution?

  • Utilisez l'option-n (comme dans sed -n) pour supprimer la production et de l'utilisation p l'option (à côté de votre g comme dans /g;p pour imprimer uniquement les lignes où les changements ont lieu.
  • cela ne semble pas fonctionner
  • Salut Ropez, j'ai mis la réponse dans la section réponse pour une meilleure mise en forme.
InformationsquelleAutor Ropez | 2011-11-22