Bonjour,

j'ai un fichier "monfichier" qui contient des blocs de lignes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
xx toto1
yy toto2
 
xx titi1
yy titi2
 
xx tutu1
yy tutu2
 
xx tata1
J'ai besoin d'ajouter des lignes zz après chaque ligne yy , le reste de la ligne est identique à la précédente.

A noter que je travaille sur AIX donc pas de sed -i.

J'ai commencé par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
grep yy monfichier >> resultat
perl -pi -e 's/yy/zz/g' resultat
et enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
while read line
do echo $line >> monfichier
done < resultat
Le résultat est + ou moins celui attendu car j'ai toutes mes lignes zz en fin de "monfichier" alors que je voudrais les insérer après chaque ligne xx pour que mon fichier soit plus propre et plus lisible.
"monfichier" fait + ou - 500 blocs, je n'ai donc pas trop envie de le faire à la main. Comme il s'agit d'un fichier qui est utilisé en paramètre d'un batch, mes commandes ci-dessus font le job mais ça manque de maîtrise et mon fichier n'est pas "carré"

Je suis convaincu qu'un petit sed ou awk en une ligne doit être capable de faire ça.

Merci