Avec mon gawk (GNU awk) ça donne:
Si tu n'as pas ce résultat, c'est que tu n'as pas gawk. Tu peux alors essayer un pis-aller avec substr():Code:
1
2 SSFSSL_9999;TOT ;SSL_0112; ;XXXX;I2410060;0000000082;0000028830;0000006879;20090924;10060193;20090924;10171820;20090924;10171946;000001;NPROTSSL1;iasadmin;76;00512;U15;\\MOMOKUIYP111\exploit\0112\XXX\XXX_TOT_0112_23092009.txt; ; ; SSFSSL_9999;TOT ;SSL_0118;R;YYYY;I2410064;0000000008;0000002190;0000002190;20090924;10060195;20090924;10195857;20090924;10195918;000000;NPROTSSL1;iasadmin;00;00512;U00;\\MOMOKUIYP111\exploit\0118\YYY\XXX_VBV_0118_23092009.txt;SSL_9999;BIDULAGE;
Même résultat en sortie qu'avec gawk. Mais en moins véloce d'après des tests que j'ai faits sur d'autres fichiers.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 BEGIN{ offset=1 fieldwidths="11 1 8 1 8 17 1 15 4 14 8 1 10 1 10 1 10 1 8 1 8 1 8 1 8 1 8 1 8 1 6 1 9 1 8 24 2 1 5 1 3 1 57 89 8 41 8 71" n=split(fieldwidths, f, " ") } { for(i=1;i<=n;i++){ if (i%2) printf substr($0, offset, f[i]) ";" offset+=f[i] } print "" offset=1 }
Fais un man awk pour voir comment afficher ta version. Mais si FIELDWIDTHS ne fonctionne pas tu dois avoir, au mieux nawk, au pire le awk original.