【问题标题】:Calculate Average from a file and show records of students whose average is more than 90从文件中计算平均值并显示平均值超过 90 的学生的记录
【发布时间】:2020-01-23 02:21:41
【问题描述】:

我有一个名为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

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

预期的输出是Shriii|First|ADCET|95|90|92.5 我尝试了各种方法但无法生成预期的输出。我试过Link1Link2

【问题讨论】:

  • 您从这些问题中学到了什么?你理解你尝试的代码吗?您对此有什么疑问(除了“有人可以帮我做这件事吗?”)

标签: awk command-line-interface average


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2013-01-14
    • 2012-06-19
    相关资源
    最近更新 更多