我是 bash 腳本的新手,并試圖為我的資料檔案解決一個問題。
我有一個包含三列的檔案,檔案的模式如下
#col1 #col2 #col3
1.1 0.0 2.1
1.2 0.0 2.2
1.3 0.0 2.3
0.9 0.0 0.3
0.8 0.0 0.4
0.7 0.0 0.4
2.1 0.0 0.6
2.1 0.0 0.6
2.2 0.0 0.7
它有1000多個術語。
我必須取第三列的平均值。為此,我必須在一個回圈中讀取檔案,然后考慮空間,對第二個回圈執行相同操作,考慮空間,然后回圈第三列。
我寫了一個小腳本,但我無法理解如何再次開始第二次迭代并計算平均值。
IFS=$'\n'
count=0;
total=0;
for i in $( awk '{print $3;}' Berry_Ef)
do
k=$(awk -v n=$i 'NR==n{print $3}' )
total=$( echo $total $i | bc)
((count ))
done
echo "$count" "count">> sum
echo "$total" "total">>sum
echo "scale=5; $total/$count" | bc >>sum
任何建議和幫助對我都很重要。
uj5u.com熱心網友回復:
建議使用單個awk腳本只讀取和處理一次輸入檔案。
awk ' {
col3Count;
total = total $3;
}
END {
printf("total = %d count = %d normal = %d\n", total, col3Count, (total/col3Count));
}
' input.csv
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/449203.html
