Rajouter un numéro en fonction d'un identifiant script shell

JsuisNul Messages postés 137 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je souhaiterai modifier un fichier en rajoutant un numéro à un champs.
Cette numérotation doit être remise à zéro dés lors que je change d'identifiant.

Mon fichier initial est sous la forme suivante :

Identifiant1;objet&;tintin;toto
Identifiant1;objet&;papa;pepe
Identifiant2;objet&;coco;kiki
Identifiant3;objet&;roro;rara
Identifiant3;objet&;lolo;lala
Identifiant3;objet&;vuvu;vovo

et je voudrait avoir en remplaçant le "&" par la numérotation :

Identifiant1;objet1;tintin;toto
Identifiant1;objet2;papa;pepe
Identifiant2;objet1;coco;kiki
Identifiant3;objet1;roro;rara
Identifiant3;objet2;lolo;lala
Identifiant3;objet3;vuvu;vovo

je connais la commande sed pour faire des remplacements mais je vois pas commande faire une boucle qui s'initialise à chaque changement d'identifiant.

Merci d'avance pour votre aide.

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    $ awk 'BEGIN {FS=OFS=";"} {sub("&", ++t[$1], $2); print}' fichier
    Identifiant1;objet1;tintin;toto
    Identifiant1;objet2;papa;pepe
    Identifiant2;objet1;coco;kiki
    Identifiant3;objet1;roro;rara
    Identifiant3;objet2;lolo;lala
    Identifiant3;objet3;vuvu;vovo
    $
    1