如何在awk中使用比例尺?

如何在awk中使用比例尺?

我有一条文字。它由 3 列组成:

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

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

如何得出3位数后的结果:

Example: 123123  50  55
result: 52.500

我想检查每个结果后,它是否大于50。

答案1

我提议:

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

输出:52.500

答案2

如果您想匹配比您更高的成绩,50请执行以下操作:

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

将结果存储在sum变量中。使用split函数匹配.点之前的第一部分并打印结果

如果您想打印学生号,您可以printf按如下方式修改该行:

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

相关内容