Script awk numerotation en double

Résolu/Fermé
badou - Modifié par jipicy le 23/07/2010 à 22:26
 badou - 24 juil. 2010 à 22:15
Bonjour,

ce script ci-dessous permet de numeroter les ligne 2 a 2 sur les 14 premier caracteres.
mon pb est que, arrivé a 100 il passe 15 caracteres au lieu de 14.
Merci de modifier le script pour que la numerotation reste sur les 14 positions.

awk '{i=i+(NR%2?1:0);print substr($0,1,22) sprintf("%02d", i) substr($0,24)}' a1 >a2


a2
000000000000000000000001CH89999999999999999999 2010000016
000000000000000000000001CA77777777777777777 2010000016DDA
000000000000000000000002CH99999999999999999999 2010000016
000000000000000000000002CA11111111111111111 2010000016DDA
000000000000000000000003CH66666666666666666666 2010000016
000000000000000000000003CA22222222222222222 2010000016DDA
000000000000000000000004CH44444444444444444444 2010000016
000000000000000000000004CA33333333333333333 2010000016DDA
.........................
000000000000000000000099CH50010000000000000000000 2010000016
000000000000000000000099CA50000000000000000000 2010000016SAV
0000000000000000000000100CH50010000000000000000000 2010000016
0000000000000000000000100CA50000000000000000000 2010000016SAV
0000000000000000000000101CH55555555555555555555 2010000016
0000000000000000000000101CA77777777777777777 2010000016DDA
0000000000000000000000102CH5007777777777777777 2010000016
0000000000000000000000102CA9999999999999999999 2010000016DDA




A voir également:

2 réponses

dubcek Messages postés 18719 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 mai 2024 5 615
Modifié par dubcek le 24/07/2010 à 09:32
hello
numeroter les ligne 2 a 2 sur les 14 premier caracteres
tu veux dire 24 ?
je ferais comme ça, valable jusqu'à 9999
awk '{i=i+(NR%2?1:0);print substr($0,1,20) sprintf("%04d", i) substr($0,25)}' a1 >a2 
0
merci ca marche.
0