awk - 将每一列除以另一列
问题描述
我有
V1 V2 V3 V4 sites var_homorefref var_homodevdev var_hetdevdev var_hetrefdev
NC_044998.1 14582 80739 LOC100221041 596 1256 156 7 319
NC_044998.1 31388 68748 DCBLD2 338 617 88 4 171
NC_044998.1 80874 299341 CMSS1 2873 6246 1183 51 2024
NC_044998.1 112495 297570 FILIP1L 2434 5388 996 31 1736
NC_044998.1 287349 289742 LOC116808959 14 49 0 0 6
NC_044998.1 300404 343805 TBC1D23 364 909 158 3 305
NC_044998.1 333622 344667 NIT2 84 163 44 0 57
NC_044998.1 346168 368957 TOMM70 177 361 85 0 159
NC_044998.1 371654 380427 LNP1 116 308 66 6 126
我想$6-$9
除以$5*11
我在尝试
awk 'BEGIN {FS=OFS="\t"} FNR>1 {for(i=6; i<=9; i++) print $1 OFS $2 OFS $3 OFS $4 OFS $5 OFS ($5?$i/($5*11):"0")}' file
但它只计算$6
.
它也不会输出其中字段$i
为的行0
,而不是输出“ 0
”并维护总行数。
解决方案
你可以使用这个awk
脚本:
awk 'BEGIN {FS=OFS="\t"} NR>1 && $5!=0 {for (i=6; i<=9; ++i) $i /= ($5*11)} 1' file | column -t
V1 V2 V3 V4 sites var_homorefref var_homodevdev var_hetdevdev var_hetrefdev
NC_044998.1 14582 80739 LOC100221041 596 0.19158 0.023795 0.00106772 0.0486577
NC_044998.1 31388 68748 DCBLD2 338 0.165949 0.0236686 0.00107585 0.0459925
NC_044998.1 80874 299341 CMSS1 2873 0.197639 0.0374332 0.00161377 0.0640446
NC_044998.1 112495 297570 FILIP1L 2434 0.20124 0.0372003 0.00115784 0.064839
NC_044998.1 287349 289742 LOC116808959 14 0.318182 0 0 0.038961
NC_044998.1 300404 343805 TBC1D23 364 0.227023 0.0394605 0.000749251 0.0761738
NC_044998.1 333622 344667 NIT2 84 0.176407 0.047619 0 0.0616883
NC_044998.1 346168 368957 TOMM70 177 0.185413 0.0436569 0 0.0816641
NC_044998.1 371654 380427 LNP1 116 0.241379 0.0517241 0.00470219 0.0987461
推荐阅读
- javascript - 对任何输入文本框中的文本进行排序
- python - Colab - Keras - TypeError:'int'对象不可迭代
- python-3.x - 如何从 google.cloud.monitoring_v3 将参数传递给 list_time_series 方法?
- c# - 解决方案中的 Asp.net MVC 多个 web 项目
- java - 如何将主项目的依赖项添加到 gradle/groovy 中的子项目?
- ios - 无法下载 IOS 模拟器 Xcode 12.4。从 ADC 下载包失败。没有使用 Xcode 注册的有效帐户
- android - exoplayer 的服务在一段时间后停止
- ios - 为什么我的导航和普通按钮文本和图像不可见但可操作?
- google-api - GMail API SendAs GET 不显示没有别名的显示名称
- amazon-web-services - 应用程序负载平衡器 HTTPS 侦听器未按预期工作