在使用零的情况下,awk计算失败
我正在使用在使用零的情况下,awk计算失败,awk,Awk,我正在使用awk计算每个id的%,使用下面的函数,该函数运行且非常接近,除非计算中使用的为零。我不知道如何将这种情况编码到awk,因为这种情况经常发生。谢谢:) file1 ABCA2 9 232 ABHD12 211 648 ABL2 83 0 文件2 CC2D2A 442 (CCDC114) 0 带错误的awk awk 'function ceil(v) {return int(v)==v?v:int(v+1)} > NR==FNR{f1[$1]=$2; next}
awk
计算每个id
的%
,使用下面的函数,该函数运行且非常接近,除非计算中使用的
为零。我不知道如何将这种情况编码到awk
,因为这种情况经常发生。谢谢:)
file1
ABCA2 9 232
ABHD12 211 648
ABL2 83 0
文件2
CC2D2A 442
(CCDC114) 0
带错误的awk
awk 'function ceil(v) {return int(v)==v?v:int(v+1)}
> NR==FNR{f1[$1]=$2; next}
> $1 in f1{print $1, ceil(10000*(1-f1[$1]/$3))/100 "%"}' all_sorted_genes_base_counts.bed all_sorted_total_base_counts.bed > total_panel_coverage.txt
awk: cmd. line:3: (FILENAME=file1 FNR=3) fatal: division by zero attempted
如果有一个脚本在解析2个输入文件时失败,我无法想象为什么只显示1个示例输入文件而没有预期的输出
awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
e、 g
当
$3
为零时,您应该得到什么结果<代码>不适用?很抱歉没有发布这两个输入文件,我将编辑我的帖子。。。。对不起,我正在开会。谢谢:)“不适用”将是完美的。。。谢谢:)。由于awk
没有可管理的被零除异常,只需在被零除之前添加适当的逻辑检测即可。
$ echo '6 2' | awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
3
$ echo '6 0' | awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
NaN