Ho un file contenente N * 10 linee, ciascuna riga composta da un numero. Devo riassumere ogni 10 righe e quindi stampare una media per ogni gruppo di questo tipo. So che è fattibile in awk
, semplicemente non so come.Come riassumere ogni 10 righe e calcolare la media usando AWK?
9
A
risposta
14
provare qualcosa di simile:
$ cat input
1
2
3
4
5
6
2.5
3.5
4
$ awk '{sum+=$1} (NR%3)==0{print sum/3; sum=0;}' input
2
5
3.33333
(adatto per blocchi di 10 linee, ovviamente.)
1
può essere qualcosa di simile -
[jaypal:~/Temp] seq 20 > test.file
[jaypal:~/Temp] awk '
{sum+=$1}
(NR%10==0){avg=sum/10;print $1"\nTotal: "sum "\tAverage: "avg;sum=0;next}1' test.file
1
2
3
4
5
6
7
8
9
10
Total: 55 Average: 5.5
11
12
13
14
15
16
17
18
19
20
Total: 155 Average: 15.5
Se non si desidera tutte le linee da stampare allora funzioneranno le seguenti.
[jaypal:~/Temp] awk '
{sum+=$1}
(NR%10==0){avg=sum/10;print "Total: "sum "\tAverage: "avg;sum=0;next}' test.file
Total: 55 Average: 5.5
Total: 155 Average: 15.5
Problemi correlati
- 1. calcolare media usando awk da più file
- 2. Calcolare la media di ogni 13 righe nella cornice dati
- 3. Come calcolare la media del 10% più alto in R
- 4. awk calcolare la media o pari a zero
- 5. Come riassumere usando la relazione YII2 hasMany?
- 6. Come calcolare la media ponderata in R?
- 7. T-SQL calcolare media mobile
- 8. Calcolare la media ponderata usando un panda/dataframe
- 9. Calcola la media di ogni x righe in una tabella e crea una nuova tabella
- 10. Come passare/ruotare ogni due righe con sed/awk?
- 11. calcolare una media giornaliera R
- 12. come calcolare la media con MongoDB e NumberLong
- 13. Script awk generico per calcolare la media su qualsiasi campo tramite l'argomento della riga di comando
- 14. Come calcolare la media mobile in Python 3?
- 15. Come riassumere i dati per gruppo con media ponderata?
- 16. Calcolare la media con linq senza raggruppamento
- 17. Come calcolare la media di vettori da più elenchi?
- 18. Rendere la mia funzione calcolare la media dell'array Swift
- 19. AWK rimuovere le righe vuote
- 20. Perché awk non stampa le nuove righe?
- 21. Calcolare la media ponderata con i panda dataframe
- 22. Come riassumere una singola colonna della tabella usando Javascript?
- 23. Come calcolare la direzione media di due vettori
- 24. Come calcolare la media mobile cumulativa in Python/SQLAlchemy/Flask
- 25. calcolare la media su più frame di dati
- 26. Utilizza awk per trovare la media di una colonna
- 27. In C++, come calcolare la media di un vettore di numeri interi usando una vista vettoriale e gsl_stats_mean?
- 28. R: come riassumere in base a più criteri e riassumere tavolo
- 29. Calcola la media per ogni soggetto per condizioni diverse
- 30. Modo pitonico per calcolare la media e la varianza dei valori nei contatori
Si sarebbe potuto usare 'seq' per astrarre l'input di test:' seq 50 | awk '{sum + = $ 1} (NR% 10) == 0 {print sum/10; sum = 0;} '' – progo
Hm, non sembra funzionare nel mio caso. Potrebbe il fatto che sto lavorando su valori decimali ha qualcosa a che fare con questo? – gablin
@gablin: quello che ho postato funziona bene con valori decimali. – Mat