我正在使用awk
使用下面的%
来计算id
,除非计算中使用的#
为零,否则它会非常接近。我不确定如何将此条件编码到awk
中,因为它经常发生。谢谢你:)。
文件1
ABCA2 9 232
ABHD12 211 648
ABL2 83 0
file2的
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
答案 0 :(得分:3)
如果您在解析2个输入文件时脚本失败,我无法想象为什么您只显示1个示例输入文件而没有预期输出,从而确保
但一般来说,为了防止零分母,您可以使用以下代码:
awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
e.g。
$ echo '6 2' | awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
3
$ echo '6 0' | awk '{print ($2 == 0 ? "NaN" : $1 / $2)}'
NaN