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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.





Répondre avec citation











Partager