Sed duplique ligne

Résolu
labas -  
 bigorno -
Bonjour,
Je dois écrire un script qui parcourt un fichier et si je trouve le ou les caractères suivant: ‘6020’ ou ‘6021’ sur la ligne, je dois dupliquer la ligne puis changer sur cette ligne ‘6020’ ou ‘6021’ par ‘4500’

Exemple :Avant



a;a ;00000000;;;20080331;;;E ;;;;6020;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;4245;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;4250;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;6021;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;6256;;;;;;;



Après

a;a ;00000000;;;20080331;;;E ;;;;6020;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;4500;;;;;;; ajout de cette ligne en changeant 6020 par 4500
a;a ;00000000;;;20080331;;;E ;;;;4245;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;4250;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;6021;;;;;;;
a;a ;00000000;;;20080331;;;E ;;;;4500;;;;;;; ajout de cette ligne en changeant 6021 par 4500
a;a ;00000000;;;20080331;;;E ;;;;6256;;;;;;;

Merci d'avance
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,
sed  '/6020\|6021/{h;s//4500/;H;x}'
;-))
3
bigorno
 
C'est magnifique, ça marche ! Ca m'ôte une sacré épine du pied :)
0
labas
 
J'ai un problème avec la dernière ligne le script ne la prend pas en compte on dirais.
1
labas
 
ça marche
0