从文件计算平均值,并显示平均值超过90的学生的记录

时间:2019-02-21 19:41:20

标签: awk command-line-interface average

我有一个名为input.txt的文件,其中包含StudentName # ClassName #SchoolName # Subject1Marks # Subject2Marks格式的学生数据。

Shriii#First#ADCET#95#90
Chaitraliii#Second#ADCET#80#75
Shubhangi#First#ADCET#75#70
Tushar#Second#RIT#80#79
Prathamesh#First#RIT#88#63
Sukrut#Second#KIT#91#90

输出应包含平均水平超过90的学生的记录。我必须在新列中显示平均水平。

期望的输出为Shriii|First|ADCET|95|90|92.5,我尝试了各种方法,但无法生成期望的输出。我尝试了Link1 Link2

1 个答案:

答案 0 :(得分:1)

awk来营救!

$ awk -F# -v OFS='|' '{$(NF+1)=($(NF-1)+$NF)/2}1' file

Shriii|First|ADCET|95|90|92.5
Chaitraliii|Second|ADCET|80|75|77.5
Shubhangi|First|ADCET|75|70|72.5
Tushar|Second|RIT|80|79|79.5
Prathamesh|First|RIT|88|63|75.5
Sukrut|Second|KIT|91|90|90.5

或通过管道传递到column以获得漂亮的输出

... | column -ts'|'

Shriii       First   ADCET  95  90  92.5
Chaitraliii  Second  ADCET  80  75  77.5
Shubhangi    First   ADCET  75  70  72.5
Tushar       Second  RIT    80  79  79.5
Prathamesh   First   RIT    88  63  75.5
Sukrut       Second  KIT    91  90  90.5