Eu proponho:
awk '{ printf("%.3f\n", ($2+$3)/2 ) }' example.txt
Saída: 52.500
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.
Eu proponho:
awk '{ printf("%.3f\n", ($2+$3)/2 ) }' example.txt
Saída: 52.500
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)
Tags awk