linux – Parse得分报告并提取点数和平均值

linux – Parse得分报告并提取点数和平均值,第1张

概述我想计算: >总分(总和) >今日积分(总和) >总分(平均值) >今天积分(平均值) 我不知道除了我需要开始之外的bash脚本:#!/ bin / bash 这是我的文件样本 #file 14516 - 2011-01-26 19:01:00 EDT#user: xxxxxxxx@email.com / id(11451611)lastlogin: 1295896515total_poin 我想计算:

>总分(总和)
>今日积分(总和)
>总分(平均值)
>今天积分(平均值)

我不知道除了我需要开始之外的bash脚本:#!/ bin / bash

这是我的文件样本

#file 14516 - 2011-01-26 19:01:00 EDT#user: xxxxxxxx@email.com / ID(11451611)lastlogin: 1295896515total_points: 11.76 / today: 5.21gameID: 51user: xxxxxxxx@email.com / ID(11837327)lastlogin: 1293893041total_points: 416.1 / today: 98.1gameID: 49user: xxxxxxxx@email.com / ID(11451611)lastlogin: 1294917135total_points: 1.76 / today: 0.21gameID: 51
解决方法 你可以用这个:
#!/bin/bashif [ ! -f  ]; then  echo "file  not found"  exit 1finumber=$(grep total_points  | wc -l )sumTotal=$(grep total_points  | awk '{sum+=} END { print sum }')sumToday=$(grep total_points  | awk '{sum+=} END { print sum }')echo "Total SUM: $sumTotal"echo -n "Total AVG: "echo "scale=5;$sumTotal/$number" | bcecho "Today SUM: $sumToday"echo -n "Today AVG: "echo "scale=5;$sumToday/$number" | bc

然后保存到如下文件:script.sh

将权限更改为可执行文件:chmod x script.sh

然后运行它:./ script.sh sample.txt

这将输出:

Total Record: 3Total SUM: 429.62Total AVG: 143.20666Today SUM: 103.52Today AVG: 34.50666

注意:
$1将是输入文件.

这里有关于bc command,grep,awk的更多帮助

总结

以上是内存溢出为你收集整理的linux – Parse得分报告并提取点数和平均值全部内容,希望文章能够帮你解决linux – Parse得分报告并提取点数和平均值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存