shell 从一行输出文本中提取数字 循环多次计算平均值

#! /bin/bash

ave=0

for i in `seq 1 6`
do
        x=`echo "speed 234m/s"`
        y=`echo $x|grep -o '[0-9]\+'`
        ave=`expr $ave + $y`
done

ave=`expr $ave / 6`
echo "speed ${ave}m/s"
#! /bin/bash
ave=0

for i in `seq 1 6`
do
        x=`echo "speed 234.78m/s"`
        y=`echo $x|grep -o '[0-9]\+[.][0-9]\+'`
        ave=`echo "$ave + $y"|bc`
        echo $ave
done

ave=`echo "scale=3;$ave / 6.0"|bc`
echo "speed ${ave}m/s"

提取出第二个数字

#! /bin/bash
ave=0

for i in `seq 1 6`
do
        x=`echo "speed 234.78m/s 111.11m/s"`
        z=`echo $x|grep -o '[0-9]\+[.][0-9]\+'`
        y=`echo $z|awk '{print $2}'`    
        ave=`echo "$ave + $y"|bc`       
        echo $ave
done

ave=`echo "scale=3;$ave / 6.0"|bc`
echo "speed ${ave}m/s"

猜你喜欢

转载自blog.csdn.net/qinglongqishi1/article/details/82467872