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
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

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