我试图写一个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