Как использовать масштаб в awk?

У меня есть текст. Он состоит из 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 или нет.

0
04.12.2016, 00:36
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, сумма)

1
28.01.2020, 02:34

I предложение:

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

Вывод: 52.500

1
28.01.2020, 02:34

Теги

Похожие вопросы