Sed duplique ligne

Résolu/Fermé
labas - 2 avril 2008 à 15:06
 bigorno - 27 sept. 2017 à 19:29
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
2 avril 2008 à 15:12
Salut,
sed  '/6020\|6021/{h;s//4500/;H;x}'
;-))
3
C'est magnifique, ça marche ! Ca m'ôte une sacré épine du pied :)
0
J'ai un problème avec la dernière ligne le script ne la prend pas en compte on dirais.
1
ça marche
0