使用shell脚本制作图表

时间:2009-12-07 11:38:24

标签: regex bash grep

我需要在一个时间段内创建一个包含数值的图表,这些值代表网页中的在线用户。

脚本将每30分钟用cron执行一次,并且将使用wget下载所需的html文件。但是还有一些尚未解决的问题&问题:

-i需要从html代码中获取数值(但grep返回整行),我怎样才能得到数值?我可以用grep来获取它,它看起来像这样:

                            Users online: 24 917                    </div>

我怎样才能得到24917?

- 什么会更容易?使用图形生成.svg文件,或将值保存在.csv文件中(并使用OOo或类似的东西生成图形)。也许还有其他一些好主意?

提前致谢,

-skazhy

2 个答案:

答案 0 :(得分:3)

您可以执行以下操作来获取您的电话号码:

设置正则表达式:

digits='[[:digit:]]+ *[[:digit:]]*'

接下来是这两行:

num=$(echo $line | grep -Eo "$digits")
num=${num// }

或者这些:

# Bash >= 3.2 (syntax may be different for 3.0/3.1)
[[ $line =~ $digits ]]
num=${BASH_REMATCH[@]// }

从包含问题中的行的变量$line中提取数字。

Gnuplot应该随时可用。可以找到其输出的一些示例here

这些来自here

example graph example graph

答案 1 :(得分:0)

只需一个流程(grep):

array=( $(grep whatever filename ) ) && echo  "${array[2]}${array[3]}"