0

我有一个大文件“values.txt”,其中有很多值。这些值可以在文件 valeur.txt 中找到,如下所示:

File:  "values.txt"
************************************************** *****************************************
2
14
18
20
23
.
.
.
24
******************************************************************************************

我想编写一个脚本,计算每 16 秒从文件 values.txt 读取的值的平均值

即:每16秒后我将计算我在文件values.txt中读取的值的平均值

例如:

要读取文件“value.txt”,我们需要 (16 * 4 = 64) 秒。因此,脚本执行完毕后,必须显示 4 个值。因为每 16 秒它会计算一个平均值。

我试着做事,但时间的概念(16秒)我仍然无法管理它


let "i=0"    
let"cum=0"

while read var   
do  
if [timer] # how I could control the period of 16 seconde ?  
then  
let "i = i +1"  
let "cum = cum + var"  
else  # 16 seconds have elapsed, so i calculate the averag   
let  "avrg_var= cum /i" 
echo "$avrg_var">> new_file.txt
fi 
done < values.txt 

提前感谢您的回答和建议

4

2 回答 2

1

尝试这个:

while :
do
    let "i=0"
    let "cum=0"
    while read var
    do
        let "i = i +1"
        let "cum = cum + var"
    done < /tmp/values.txt 

    let "avrg_var= cum /i"

    echo "$avrg_var">> new_file.txt

    sleep 16
done

这对计时器不起作用,只是在两次运行之间休眠 16 秒。

于 2012-08-29T00:54:54.640 回答
0

编写一个将值平均一次的脚本,然后您可以使用watch命令运行您的脚本,假设您在基于 *nix 的系统上。默认值为 2 秒,但您可以将其更改为您想要的任何内容,它将在终端中重复运行直到取消

于 2012-08-29T01:59:47.080 回答