我想计算:
我不知道除了我需要开始之外的bash脚本:#!/ bin / bash
这是我的文件样本
#file 14516 - 2011-01-26 19:01:00 EDT#
user: xxxxxxxx@email.com / id(11451611)
lastlogin: 1295896515
total_points: 11.76 / today: 5.21
gameid: 51
user: xxxxxxxx@email.com / id(11837327)
lastlogin: 1293893041
total_points: 416.1 / today: 98.1
gameid: 49
user: xxxxxxxx@email.com / id(11451611)
lastlogin: 1294917135
total_points: 1.76 / today: 0.21
gameid: 51
答案 0 :(得分:7)
您可以使用:
#!/bin/bash
if [ ! -f $1 ]; then
echo "File $1 not found"
exit 1
fi
number=$(grep total_points $1 | wc -l )
sumTotal=$(grep total_points $1 | awk '{sum+=$2} END { print sum }')
sumToday=$(grep total_points $1 | awk '{sum+=$5} END { print sum }')
echo "Total SUM: $sumTotal"
echo -n "Total AVG: "
echo "scale=5;$sumTotal/$number" | bc
echo "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: 3
Total SUM: 429.62
Total AVG: 143.20666
Today SUM: 103.52
Today AVG: 34.50666
注意:
$1
将输入文件。
以下是bc command,grep,awk
的更多帮助