web-dev-qa-db-fra.com

Comment remplacer globalement des chaînes dans des lignes ne commençant pas par un certain modèle

Je veux remplacer globalement la chaîne foo par la barre de chaîne, en utilisant sed. Cela ne devrait être fait que pour les lignes qui ne commencent pas par la chaîne ## Input.

Je n'arrive pas à le faire marcher. J'ai essayé des choses comme ça, mais j'ai atteint un point où je ne suis pas sûr de savoir ce que je fais:

sed -i '/^##Input/ s/foo/bar/g' myfile

Aidez-moi!

47
user438602

Vous avez juste besoin d'annuler la correspondance en utilisant !:

sed -i '/^##Input/! s/foo/bar/g' myfile
72
Dennis Williamson