Como usar escala no awk?

0

Eu tenho um texto. É composto por 3 colunas:

1. student number
2. midterm grade
3. final grade

variable=$(cat $1 | awk 'NR=='$j' {print (($2+$3)/2)}' ) 

Como posso fazer o resultado após 3 dígitos:

Example: 123123  50  55
result: 52.500

Depois que eu quiser verificar cada resultado, ele é maior que 50 ou não.

    
por Black 03.12.2016 / 23:06

2 respostas

1

Eu proponho:

awk '{ printf("%.3f\n", ($2+$3)/2 ) }' example.txt

Saída: 52.500

    
por 03.12.2016 / 23:22
1

Se você quiser combinar as notas maiores que 50 , você faria algo como:

awk '{sum=($2+$3)/2 ; split(sum,a,"."); if(a[1] > 50) printf("%.3f\n", sum)}' grades

Armazene o resultado na variável sum . Use a função split para coincidir com a primeira parte antes do . dot e imprima o resultado

Caso você queira imprimir o número do aluno, modifique a linha printf da seguinte forma:

printf("Student: %s\t%.3f\n", $1, sum)

    
por 03.12.2016 / 23:58

Tags