Я хочу написать скрипт, который получает среднее значение из двух столбцов файла, где первый столбец равен, я сделал это с awk. она работает, но на выходе были данные экспоненциальный формат
121323e + 2
я изменил печать на PRINTF и я добавил% F для поплавкаawk average in decimal
awk '
NR>1{
arr[$1] += $2
arr2[$1] += $3
count[$1] += 1
}
END{
for (a in arr) {
printf "%4.3f", a " " arr[a]/count[a] " " arr2[a]/count[a]
}
}
' t1.txt > t2.txt
У меня есть проблемы с этой частью:
printf "%4.3f", a " " arr[a]/count[a] " " arr2[a]/count[a]
- Я хочу, чтобы ввести после каждой PRINTF линии
- пространства не существует на выходе
выход:
0001204.0001125.0001118.0001053.0001046.0001039.000901.000822.000815.000808.000750
, который я хотел
0001 204.000 1125.000
1118.000 1053.000 1046.000
1039.000 901.000 822.000
815.000 808.000 750
Пожалуйста, разместите вывод, который вы получите, и то, что вы ожидаете. Также вы указываете только 1 поплавок в вашем printf, тогда как вы пытаетесь распечатать 2. Попробуйте 'printf '% i% 4.3f% 4.3f", a, arr [a ]/count [a], arr2 [a]/count [a] ' – 123