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

Fermé
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 - 7 mars 2014 à 15:20
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 8 mars 2014 à 08:34
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

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 mars 2014 à 08:34
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