用于获取值的Shell脚本

时间:2011-11-14 12:29:43

标签: regex bash

我正在尝试创建一个shell脚本,它将读取行数(如下所示)并且只打印"每秒查询平均值:VALUE"字符串。

主题:1个问题:2459965658慢查询:400打开:103532刷新表:165打开表:64每秒查询数:726.243

我如何使用shell脚本实现这一点。?

3 个答案:

答案 0 :(得分:3)

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

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

然而,最新版本的bash本身支持正则表达式。

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

答案 1 :(得分:1)

SED

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

的bash

#!/bin/bash
while read -r line; do
    echo "Queries${line##*Queries}"
done

答案 2 :(得分:0)

... | grep -o 'Queries per second avg: [0-9.]\+'