$ awk 'NF > m { m = NF } { s += NF } END { printf("Max = %d\nAvg = %g\n", m, s/NR) }' data.in
Max = 9
Avg = 3.33333
O script awk
acompanhará o número máximo de campos (colunas) em m
e a soma do número de campos em s
. Ao chegar ao final do fluxo de entrada, ele mostrará as estatísticas coletadas.
O número de campos no registro atual (linha) é NF
e o número de registros lidos até o momento é NR
.
A seguinte versão também acompanhará o registro com o maior número de campos:
awk 'NF > m { m = NF; r = NR } { s += NF } END { printf("Max = %d (%d)\nAvg = %g\n", m, r, s/NR) }' data.in
Max = 9 (6)
Avg = 3.33333