2012-08-29 68 views
0

我有一個大文件「values.txt」,其中有很多值。這些值可以在文件valeur.txt如下發現:每16秒計算一次文件中的平均值

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

我想寫計算從文件中讀取values.txt值的平均值爲每16秒腳本

即:每組16秒鐘後,我將計算值的平均值,我在文件values.txt

爲exmpl已經閱讀:

讀取文件「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 

預先感謝您爲您的答案和建議

+1

爲什麼標記爲「c」? –

回答

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 

Thi s在定時器上不起作用,只是在運行之間休眠16秒。

0

編寫一個平均值爲一次的腳本,然後可以使用watch命令運行腳本,前提是您的系統基於* nix。默認值爲2秒,但您可以將其更改爲任何您想要的值,並且會反覆在終端中運行,直到取消爲止