1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
function process_group(tickets,nb_tickets,lines,nb_lines) {
# fonction a appeler quand on veut creer un fichier
# avec les differents tickets memorises (3 ou moins (le
# dernier paquet))
# je construis le nom du fichier du groupe a traiter
# qui comprend les numeros des tickets du groupe
filename = "group"
for (t=0;t<nb_tickets;t++)
filename = filename "_" tickets[t]
# ecriture des lignes des tickets dans le fichier
for (l=0;l<nb_lines;l++)
print lines[l] > filename
# fermeture du fichier
close(filename)
}
BEGIN {
nb_tickets = nb_lines = 0
}
/^\[ticket/ {
if (nb_tickets == 3)
{
process_group(tickets,nb_tickets,lines,nb_lines)
nb_tickets = nb_lines = 0
}
# je memorise le numero du ticket ...
tickets[nb_tickets] = substr($2,1,length($2)-1)
# et j'incremente le nombre de tickets traites
nb_tickets++
}
{
# je stocke la ligne courante ...
lines[nb_lines] = $0
# et incremente le nombre de lignes
nb_lines++
}
END {
# traitement du dernier groupe a 1, 2 ou 3 tickets
process_group(tickets,nb_tickets,lines,nb_lines)
} |
Partager