awk - 帮助格式化列平均值的 AWK 脚本
问题描述
下面我试图让这个 awk 脚本显示每个单独的考试平均值以及考试本身的平均值。我知道每行代码的执行方式都放在哪里。这就是我需要它的样子:
名称 考试 1 考试 2 考试 3 考试 4 平均
乔 0.0 75 87 91
约翰 0.0 86 72 83
考试 1 平均:0.0
考试 2 平均分:80.5
考试 3 平均分:79.5
#!/usr/bin/awk -f
NR == 1{
printf "%s \t %28s %7s %7s %7s %7s\n", "Name", "Exam 1", "Exam 2", "Exam 3", "Exam 4", "Av\
erage"
}
{
examSTUAVG = ($3 + $4 + $5) / 4;
printf "%s \t %28s %7s %7s %7s %7.1f\n", $1, "0", $3, $4, $5,examSTUAVG
{exam2Total += $3}
{exam3Total += $4}
{exam4Total += $5}
printf "Exam 1 Average is %19s\n", "0.0"
printf "Exam 2 Average is %19.1f\n", exam2Total / NR
printf "Exam 3 Average is %19.1f\n", exam3Total / NR
printf "Exam 4 Average is %19.1f\n", exam4Total / NR
}
{ print ""}
解决方案
你需要这个脚本。您可以将其另存为:program.awk
. 我添加END
了用于在最终打印平均值的块。
#!/usr/bin/awk -f
{
if(NR == 1){
printf "%s \t %28s %7s %7s %7s %7s\n", "Name", "Exam 1", "Exam 2", "Exam 3", "Exam 4", "Average"
}
else{
examSTUAVG = ($3 + $4 + $5) / 4;
printf "%s \t %28s %7s %7s %7s %7.1f\n", $1,$2, $3, $4, $5,examSTUAVG
{exam1Total += $2}
{exam2Total += $3}
{exam3Total += $4}
{exam4Total += $5}
}
}
END{
myrows=NR-1
printf "Exam 1 Average is %19.1f\n", exam1Total / myrows
printf "Exam 2 Average is %19.1f\n", exam2Total / myrows
printf "Exam 3 Average is %19.1f\n", exam3Total / myrows
printf "Exam 4 Average is %19.1f\n", exam4Total / myrows
}
输入是文件data.txt
。
Name Exam 1 Exam 2 Exam 3 Exam 4 Average
Joe 0.0 75 87 91
John 0.0 86 72 83
并将其执行为:
./program.awk data.txt
我得到了这个输出:
Name Exam 1 Exam 2 Exam 3 Exam 4 Average
Joe 0.0 75 87 91 63.2
John 0.0 86 72 83 60.2
Exam 1 Average is 0.0
Exam 2 Average is 80.5
Exam 3 Average is 79.5
Exam 4 Average is 87.0
推荐阅读
- mongodb - 使用不透明 ID 类型代替原语.ObjectID
- java - 为什么我的 Gradle Java 项目没有在 Intellij 中构建?
- c# - Postman 和 HttpWebRequest 给出不同的结果
- javascript - 从javascript中的嵌套对象中删除对象
- css - Django 不会加载静态 .css 文件错误:404 1689
- python - Django 不允许我通过任何属性栏 'pk' 查询表
- javascript - 在 javascript 中获取上传文件的 blob 内容
- php - 如何在 PHP 应用程序中不使用 PDO 或绑定解决二阶 SQL 注入
- css - 如何在 React 和 CSS 之间进行通信
- javascript - 有没有一种方法可以进行实时搜索,在 html 中搜索我的 JSON 文件?