我的 shell 脚本给出以下错误:Runtime error (func=(main), adr=5) : Divide by zero但我不知道在哪里可以除以零?我发现其他人也有类似的问题,但解决方案非常具体,无法在我的脚本中复制它们。这是我的脚本:
dir=$folder
cd folder
shop1=$1
mean1=4.78
n1=127
shop2=$2
mean2=4.75
n2=324
grep -P -o '(?=<Rating>).*' $hotel1 |
awk '{ sub(/<Overall>/, ""; print }' |
awk '{sum+=$1; sumsq+=$1*$1} END {print sqrt(sumsq/NR - (sum/NR)**2)}'
grep -P -o '(?=<Rating>).*' $hotel2 |
awk '{ sub(/<Overall>/, ""; print }' |
awk '{sum+=$1; sumsq+=$1*$1} END {print sqrt(sumsq/NR - (sum/NR)**2)}'
md=0.03
d1=0.003
d2=0.0038
d1d2=$(echo "d1 + d2" | bc)
sq=0.069
tstat=$(echo "md / sq" | bc)
Run Code Online (Sandbox Code Playgroud)
我的脚本基本上最终会根据两个数据文件计算 t 统计量,为此,它首先计算每个文件的标准差。谢谢你的时间。
不是这样的awk,问题出在这里
tstat=$(echo "md / sq" | bc)
Run Code Online (Sandbox Code Playgroud)
你必须使用$前缀来引用 bash 变量。
不用说,您的所有脚本都可以简化为一个awk
| 归档时间: |
|
| 查看次数: |
4651 次 |
| 最近记录: |