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

JsuisNul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 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.


A voir également:

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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