名为 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
输出如下所示:
请帮助我获得所需的输出。
最佳答案
尝试这种更简洁的方式:
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/