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

値を 1 回平均化するスクリプトを作成すると、*nix ベースのシステムを想定して、 watchコマンドでスクリプトを実行できます。デフォルトは 2 秒ですが、必要に応じて変更でき、キャンセルされるまでターミナルで繰り返し実行されます。

于 2012-08-29T01:59:47.080 に答える