Ciao,
innanzitutto grazie infinite dell'aiuto

allora provo a spiegarmi più chiaramente, forse non ci ero riuscito nei post precedenti.
Dunque il problema è che io dovrei ordinare all'interno di un file i dati elaborati (il valore della sottrazione $1-$8) in base al campo $7, cioè prima tutti quelli con il campo $7==1, poi ==2, ..., ==10.
L'istruzione che mi hai consigliato non cambia il mio problema, ti spiego il motivo. Se scrivo una alla volta le seguenti istruzioni variando il campo $7 da 1 a 10, ottengo:
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$
awk '$2 ~ "END_DOWNLOAD" && ($7==1){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 43 chunk n°: 1 ritardo: 1
riga: 44 chunk n°: 1 ritardo: 1
riga: 58 chunk n°: 1 ritardo: 2
riga: 59 chunk n°: 1 ritardo: 2
riga: 62 chunk n°: 1 ritardo: 2
riga: 63 chunk n°: 1 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==2){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 60 chunk n°: 2 ritardo: 1
riga: 61 chunk n°: 2 ritardo: 1
riga: 77 chunk n°: 2 ritardo: 2
riga: 78 chunk n°: 2 ritardo: 2
riga: 81 chunk n°: 2 ritardo: 2
riga: 82 chunk n°: 2 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==3){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 79 chunk n°: 3 ritardo: 1
riga: 80 chunk n°: 3 ritardo: 1
riga: 96 chunk n°: 3 ritardo: 2
riga: 97 chunk n°: 3 ritardo: 2
riga: 100 chunk n°: 3 ritardo: 2
riga: 101 chunk n°: 3 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==4){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 98 chunk n°: 4 ritardo: 1
riga: 99 chunk n°: 4 ritardo: 1
riga: 115 chunk n°: 4 ritardo: 2
riga: 116 chunk n°: 4 ritardo: 2
riga: 117 chunk n°: 4 ritardo: 2
riga: 118 chunk n°: 4 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==5){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 119 chunk n°: 5 ritardo: 1
riga: 120 chunk n°: 5 ritardo: 1
riga: 136 chunk n°: 5 ritardo: 2
riga: 137 chunk n°: 5 ritardo: 2
riga: 138 chunk n°: 5 ritardo: 2
riga: 139 chunk n°: 5 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==6){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 134 chunk n°: 6 ritardo: 1
riga: 135 chunk n°: 6 ritardo: 1
riga: 153 chunk n°: 6 ritardo: 2
riga: 155 chunk n°: 6 ritardo: 2
riga: 157 chunk n°: 6 ritardo: 2
riga: 158 chunk n°: 6 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==7){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 154 chunk n°: 7 ritardo: 1
riga: 156 chunk n°: 7 ritardo: 1
riga: 173 chunk n°: 7 ritardo: 2
riga: 174 chunk n°: 7 ritardo: 2
riga: 175 chunk n°: 7 ritardo: 2
riga: 176 chunk n°: 7 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==8){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 172 chunk n°: 8 ritardo: 1
riga: 177 chunk n°: 8 ritardo: 1
riga: 191 chunk n°: 8 ritardo: 2
riga: 192 chunk n°: 8 ritardo: 2
riga: 195 chunk n°: 8 ritardo: 2
riga: 196 chunk n°: 8 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==9){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 193 chunk n°: 9 ritardo: 1
riga: 194 chunk n°: 9 ritardo: 1
riga: 211 chunk n°: 9 ritardo: 2
riga: 212 chunk n°: 9 ritardo: 2
riga: 213 chunk n°: 9 ritardo: 2
riga: 214 chunk n°: 9 ritardo: 2
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$ awk '$2 ~ "END_DOWNLOAD" && ($7==10){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 209 chunk n°: 10 ritardo: 1
riga: 210 chunk n°: 10 ritardo: 1
riga: 225 chunk n°: 10 ritardo: 2
riga: 226 chunk n°: 10 ritardo: 2
riga: 227 chunk n°: 10 ritardo: 2
riga: 228 chunk n°: 10 ritardo: 2
ed è giusto da un punto di vista teorico che io ottenga quei risultati per i ritardi, tutti uguali per ogni valore del chunk (il campo $7). Se invece adopero l'istruzione che mi proponi, similmente a quanto accade col ciclo for, riottengo lo stesso problema, cioè i valori dei ritardi (la sottrazione $1-$8) sono corretti ma non sono ordinati in ordine crescente in base al valore del campo $7 (che sarebbe il chunk ID). Se faccio l'istruzione seguente ottengo infatti:
andrea@andrea-desktop:~/Scrivania/raccolta_log/tree/7_peer$
awk '$2 ~ "END_DOWNLOAD" && ($7=1){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
riga: 43 chunk n°: 1 ritardo: 1
riga: 44 chunk n°: 1 ritardo: 1
riga: 58 chunk n°: 1 ritardo: 2
riga: 59 chunk n°: 1 ritardo: 2
riga: 60 chunk n°: 2 ritardo: 1
riga: 61 chunk n°: 2 ritardo: 1
riga: 62 chunk n°: 1 ritardo: 2
riga: 63 chunk n°: 1 ritardo: 2
riga: 77 chunk n°: 2 ritardo: 2
riga: 78 chunk n°: 2 ritardo: 2
riga: 79 chunk n°: 3 ritardo: 1
riga: 80 chunk n°: 3 ritardo: 1
riga: 81 chunk n°: 2 ritardo: 2
riga: 82 chunk n°: 2 ritardo: 2
riga: 96 chunk n°: 3 ritardo: 2
riga: 97 chunk n°: 3 ritardo: 2
riga: 98 chunk n°: 4 ritardo: 1
riga: 99 chunk n°: 4 ritardo: 1
riga: 100 chunk n°: 3 ritardo: 2
riga: 101 chunk n°: 3 ritardo: 2
riga: 115 chunk n°: 4 ritardo: 2
riga: 116 chunk n°: 4 ritardo: 2
riga: 117 chunk n°: 4 ritardo: 2
riga: 118 chunk n°: 4 ritardo: 2
riga: 119 chunk n°: 5 ritardo: 1
riga: 120 chunk n°: 5 ritardo: 1
riga: 134 chunk n°: 6 ritardo: 1
riga: 135 chunk n°: 6 ritardo: 1
riga: 136 chunk n°: 5 ritardo: 2
riga: 137 chunk n°: 5 ritardo: 2
riga: 138 chunk n°: 5 ritardo: 2
riga: 139 chunk n°: 5 ritardo: 2
riga: 153 chunk n°: 6 ritardo: 2
riga: 154 chunk n°: 7 ritardo: 1
riga: 155 chunk n°: 6 ritardo: 2
riga: 156 chunk n°: 7 ritardo: 1
riga: 157 chunk n°: 6 ritardo: 2
riga: 158 chunk n°: 6 ritardo: 2
riga: 172 chunk n°: 8 ritardo: 1
riga: 173 chunk n°: 7 ritardo: 2
riga: 174 chunk n°: 7 ritardo: 2
riga: 175 chunk n°: 7 ritardo: 2
riga: 176 chunk n°: 7 ritardo: 2
riga: 177 chunk n°: 8 ritardo: 1
riga: 191 chunk n°: 8 ritardo: 2
riga: 192 chunk n°: 8 ritardo: 2
riga: 193 chunk n°: 9 ritardo: 1
riga: 194 chunk n°: 9 ritardo: 1
riga: 195 chunk n°: 8 ritardo: 2
riga: 196 chunk n°: 8 ritardo: 2
riga: 209 chunk n°: 10 ritardo: 1
riga: 210 chunk n°: 10 ritardo: 1
riga: 211 chunk n°: 9 ritardo: 2
riga: 212 chunk n°: 9 ritardo: 2
riga: 213 chunk n°: 9 ritardo: 2
riga: 214 chunk n°: 9 ritardo: 2
riga: 225 chunk n°: 10 ritardo: 2
riga: 226 chunk n°: 10 ritardo: 2
riga: 227 chunk n°: 10 ritardo: 2
riga: 228 chunk n°: 10 ritardo: 2
come vedi i ritardi sono corretti ma andrebbero ordinati in base al numero del chunk e non in base alla riga che viene incontrata per prima, quindi dovrebbero essere prima tutti quelli con chunk n°1, poi quelli con n°2, ..., fino a quelli col numero 10. E' possibile fare una cosa del genere? Si deve creare una funzione del tipo "
estrai(i)"
awk '$2 ~ "END_DOWNLOAD" && ($7>=i){print "riga: " NR " chunk n°: " $7 " ritardo: " $1-$8}' tree.txt
che scriva all'interno dello stesso file "sorgente.txt" (in append mi sa a questo punto) e che poi venga richiamata da un ciclo for il cui indice scorre da 1 a 10? Oppure c'è un modo più semplice per fare tutto questo?
grazie di tutto
