gpt4 book ai didi

linux - awk:使用不同的分隔符打印每个学生的平均值以及给定的详细信息

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:13 24 4
gpt4 key购买 nike

名为 Input.txt 的文件包含名称、类(class)、学校名称、marks1 和 marks2 等数据,以 # 分隔符:

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

输出如下所示:Output image

请帮助我获得所需的输出。

最佳答案

尝试这种更简洁的方式:

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

关于linux - awk:使用不同的分隔符打印每个学生的平均值以及给定的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com