我正在尝试编写一个 Bash 脚本,该脚本读取包含多列数据的文件,并将第二列中的每个值乘以第三列中的每个值,将所有这些乘法的结果加在一起。
例如,如果文件看起来像这样:
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
我尝试在所有内容周围放置一个“while read”循环,但无法让变量随每一行更新。我想我会以错误的方式解决这个问题!
我对 Linux 和 Bash 脚本非常陌生,因此将不胜感激任何帮助!