Substitution conditionnelle "sed"

Bonjour,
Je souhaite faire une substitution avec la commande « sed ». Je recherche un motif AAA dans un ficher ou ensemble de fichier et je veux modifier AAA par BBB uniquement si le motif CCC est présent sur la même ligne du fichier que le motif AAA. Sachant que je peux trouver des lignes avec uniquement le motif AAA auxquelles je ne veux pas toucher.
Comment ça marche ? :-)
Cordialement

2 réponses

  1. Contributeur
    Salut,

    $ cat plop 
    Bonjour,
    Je souhaite faire une substitution avec la commande « sed ». 
    Je recherche un motif AAA dans un ficher ou ensemble de fichier et 
    je veux modifier AAA par BBB uniquement si le motif CCC est présent sur la même ligne du fichier que le motif AAA. 
    Sachant que je peux trouver des lignes avec uniquement le motif AAA auxquelles je ne veux pas toucher.
    Comment ça marche ? :-)
    Cordialement 
    
    $ sed '/AAA.*CCC\|CCC.*AAA/ {s/AAA/BBB/g}' plop 
    Bonjour,
    Je souhaite faire une substitution avec la commande « sed ». 
    Je recherche un motif AAA dans un ficher ou ensemble de fichier et 
    je veux modifier BBB par BBB uniquement si le motif CCC est présent sur la même ligne du fichier que le motif BBB. 
    Sachant que je peux trouver des lignes avec uniquement le motif AAA auxquelles je ne veux pas toucher.
    Comment ça marche ? :-)
    Cordialement

    ;-))
    1. salut,
      «si le motif CCC est présent», «je veux modifier AAA par BBB»
      sed '/CCC/s/AAA/BBB/g'
      1. Contributeur
        Salut,

        Aussi, mais j'aime bien me compliquer la vie ;-))