我試圖寫一個bash腳本,有幾個數據列讀取文件,並在乘以通過第三列的每個值的第二列中的每個值,將所有的乘法結果一起。對變量用awk與運營
例如,如果該文件是這樣的:
Column 1 Column 2 Column 3 Column 4
genome 1 30 500
genome 2 27 500
genome 3 83 500
...
該腳本應乘以1 * 30以得到30,然後2 * 27,得到54(並添加到30),然後3 * 83給249(並添加到84)等。
我一直在試圖用awk來解析輸入文件,但我不能確定如何讓操作由線進行線路。現在它在讀取第一行並且執行變量操作後停止。
這是我到目前爲止已經寫的:
for file in fileone filetwo
do
set -- $(awk '/genome/ {print $2,$3}' $file.hist)
var1=$1
var2=$2
var3=$((var1*var2))
total=$((total+var3))
echo var1 \= $var1
echo var2 \= $var2
echo var3 \= $var3
echo total \= $total
done
我試圖把一個「而改爲」周圍的一切循環,但無法得到的變量與各行進行更新。我想我正在以這種錯誤的方式去做!
我很新的Linux和Bash腳本所以任何幫助將不勝感激!
感謝您的解釋!這實際上是一個更大的bash腳本的一小部分,所以我試圖把所有的東西都放在一起,只是爲了簡單。 – Joltex 2013-03-15 22:00:37