使用bash从日志文件中获取值

时间:2015-10-13 13:49:40

标签: bash awk sed grep

我想在过去的24小时内从日志文件中获取值。

2015-10-13 09:17:30 INFO Average 1min EPS: 1040
2015-10-13 09:18:30 INFO Average 1min EPS: 1235
2015-10-13 09:19:30 INFO Average 1min EPS: 1020
2015-10-13 09:20:30 INFO Average 1min EPS: 1202
2015-10-13 09:21:30 INFO Average 1min EPS: 990

我所需要的只是价值。我希望我可以在脚本执行时获得最后24小时。

我的最终目标是获得"平均1分钟EPS:",添加所有值,并获得平均每次点击费用。

1 个答案:

答案 0 :(得分:0)

此问题的关键是选择最后一天内的行(*)

使用date查找开始时间戳:

yesterday=$(date -d "yesterday" "+%F %T")

然后,awk是一个比较字符串的便利工具

awk -v d="$yesterday" '($1 " " $2) > d {print}' file.log

然后,您只需要每行的最后一个字段

awk -v d="$yesterday" '($1 " " $2) > d {print $NF}' file.log

如果你只想要总和

awk -v d="$yesterday" '($1 " " $2) > d {sum+=$NF} END {print sum}' file.log

(*)一天不一定是24小时