Substitution conditionnelle "sed"

hiero -  
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   -
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

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
Utilisateur anonyme
 
salut,
«si le motif CCC est présent», «je veux modifier AAA par BBB»
sed '/CCC/s/AAA/BBB/g'
1
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

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