You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用awk对基因组数据按第二列连续数值分组添加组编码

基因组连续区间分组编码awk实现方案

原有代码问题

  • BEGIN块执行时还未加载任何行数据,$2 无有效值,初始赋值失败
  • 变量每次处理完行都被覆盖为当前行第二列值,没有保留分组首行的数值,导致同组后续行编码错误

正确实现代码

我们只需要两个临时变量:prev 存储上一行第二列的值,start 存储当前分组的首行第二列值,逻辑如下:

  1. 第一行直接初始化分组起始值为当前行第二列
  2. 每一行判断是否和上一行连续:如果不连续就重置分组起始值为当前行第二列
  3. 所有行输出原内容+当前分组起始值,再更新上一行值为当前行第二列
awk 'NR == 1 {start = $2} $2 != prev + 1 {start = $2} {print $0 "\t" start; prev = $2}' test

运行上述代码即可得到你预期的输出结果。

内容的提问来源于stack exchange,提问作者lbal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:18:04