Substitution conditionnelle "sed"

Fermé
hiero - 21 sept. 2011 à 18:15
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 21 sept. 2011 à 18:35
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
21 sept. 2011 à 18:20
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
21 sept. 2011 à 18:35
Salut,

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