2011-05-09 66 views
0

我有一個製表符分隔文件,我想對文件中存在的列執行一些數學計算。Shell腳本和使用gawk以及算術運算

讓文件名是sndf$tag有一些整數值,我想先找到塔3和2的值之間的差值,然後用在$tag值除以塔4值又分爲與值的差所得到的第3列2和最終的結果是由100

cat $sndf | gawk '{for (i = 1; i <= NF; i += 1) { 
    printf "%f\t" $3 -$2 "\t", (((($4/"'$tag'")/($3-$2)))*100); 
} printf "\n"}'>normal_wrt_region 

命令乘以被寫答案的4倍,而不是一次輸出文件.....ü所有可以建議改進? 謝謝

解答:親愛的,我已經解決了這個問題,謝謝大家閱讀這個問題並投入您的時間。

+2

你可以嘗試給你的問題一個更具描述性的標題?不僅這個問題,而且你的許多人都有不明確的標題。 – 2011-05-09 08:39:56

+0

我希望標題現在好了 – Angelo 2011-05-09 08:41:59

+0

問題實際上是什麼? – bmk 2011-05-09 08:42:49

回答

2

該命令是寫回答4次,而不是一次輸出文件,你可以都建議改善?

如果你不需要for循環,不要使用for循環嗎?

cat $sndf | gawk '{ printf "%f\t" $3 -$2 "\t", (((($4/"'$tag'")/($3-$2)))*100) }' 
+0

是啊,知道了,謝謝。 – Angelo 2011-05-09 09:00:47

+0

這會做一些不同的事情。 – ceving 2011-05-09 09:05:13