2011-11-14 117 views
1

我想制作一个shell脚本,它将读取行数(如下所示),并只打印“每秒查询数”字符串。Shell脚本获取值

主题:问题1:2459965658个查询速度慢:400打开:103532个FLUSH TABLES:165个打开表:每秒平均64个查询:726.243

我怎样才能实现这个使用shell脚本?

+0

你想一个只bash的解决方案或者标准工具好吗? – Sorpigal

+0

到目前为止你有尝试过什么吗?如果你展示你所做的努力,它真的会激励回答者。 – thiton

回答

3

sed是作业的传统工具像这样

sed -e 's/.* Queries/Queries/' your_file 

庆典的最新版本,但是,支持正则表达式本身。

while read -r line ; do 
    [[ $line =~ avg:\ .* ]] && echo Queries per second ${BASH_REMATCH[*]} 
done < your_file 
1

sed的

sed -r 's/^.*(Queries.*)$/\1/' 

庆典

#!/bin/bash 
while read -r line; do 
    echo "Queries${line##*Queries}" 
done 
0
... | grep -o 'Queries per second avg: [0-9.]\+' 
+0

谢谢大家的回答。我已经尝试了所有上述解决方案,并发现此解决方案适用于我的问题。我的解决方案现在是“mysql -uroot -pPASSWORD -Bse'\ s'| grep -o'每秒查询平均值:[0-9。] \ +'' – user1045574