我有一条文字。它由 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)