linux - awk:使用不同的分隔符打印每个学生的平均值以及给定的详细信息
问题描述
名为 as 的文件Input.txt
具有以下数据:名称、班级、学校名称、标记 1 和标记 2,并带有#
分隔符:
Deepu#First#Meridian#95#90
Neethu#Second#Meridian#80#75
Sethu#First#DAV#75#70
Theekshana#Second#DAV#80#79
Teju#First#Sangamithra#88#63
Theekshita#Second#Sangamithra#91#90
使用上述文件打印所有详细信息以及使用|
分隔符作为输出的平均值。
我的答案:
awk 'OFS="|" { avg=0; for(i=4;i<=NF;i++){avg=($4+$5)/2;} print $1,$2,$3,$4,$5,avg}' Input.txt
我又尝试了一个命令:
awk 'OFS="|" {sum=0; for(i=4;i<=NF;i++) sum+=$i; print $1,$2,$3,$4,$5,sum/(NF-2)}' Input.txt
输出如下所示:
请帮助我获得所需的输出。
解决方案
试试这个更简洁的方法:
awk -F# '{$(NF+1)=($4+$5)/2}1' OFS='|'
例如:
$ awk -F# '{$(NF+1)=($4+$5)/2}1' OFS='|' Input.txt
Deepu|First|Meridian|95|90|92.5
Neethu|Second|Meridian|80|75|77.5
Sethu|First|DAV|75|70|72.5
Theekshana|Second|DAV|80|79|79.5
Teju|First|Sangamithra|88|63|75.5
Theekshita|Second|Sangamithra|91|90|90.5
推荐阅读
- android - 如何在开始目的地隐藏工具栏
- python-3.x - 未在原子中为 python 代码定义的字符串
- java - 使用 HTML/CSS 创建网站 前端使用 Java 后端
- html - 为什么相同的行高对 CSS 中的链接和按钮的影响不同?
- openapi - OpenAPI 生成器:如何修复 WARN oocodegen.DefaultCodegen - 值(生成器的选项)必须是布尔值或字符串。默认为“假”
- laravel - ExampleComponent.vue 不工作 Laravel 7
- bluetooth-lowenergy - 在蓝牙 v5.0 上读取和设置 LE 2M PHY
- python - 在python中查找表达式
- gerrit - 无法在 3.2.1 版停止 gerrit
- string - 包含的 Clojure 库中是否有一个函数可以将一个字符串拆分为另一个字符串?