У меня есть текст. Он состоит из 3 столбцов:
1. student number
2. midterm grade
3. final grade
variable=$(cat $1 | awk 'NR=='$j' {print (($2+$3)/2)}' )
Как я могу получить результат после трех цифр:
Example: 123123 50 55
result: 52.500
После того, как я хочу проверить каждый результат, он больше 50 или нет.
Если вы хотите сопоставить оценки выше ] 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, сумма)
I предложение:
awk '{ printf("%.3f\n", ($2+$3)/2 ) }' example.txt
Вывод: 52.500