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

请求编写Awk/Sed脚本:在Load DR后按TMS序列插入NEW_TRAN

Awk脚本实现指定序列后的精准插入操作

针对你的需求,下面提供一个精准的Awk脚本,只会在"Load DR"之后匹配到REST_TMS=1→REST_TMS=0→REST_TMS=0的序列时,在第三个项对应的V块前插入NEW_TRAN:

BEGIN {
    in_load_dr = 0
    tms_seq = 0
    insert_flag = 0
}

/Load DR/ {
    in_load_dr = 1
}

in_load_dr && /REST_TMS=1/ && tms_seq == 0 {
    tms_seq = 1
}

in_load_dr && /REST_TMS=0/ && tms_seq == 1 {
    tms_seq = 2
}

in_load_dr && /REST_TMS=0/ && tms_seq == 2 {
    tms_seq = 3
    insert_flag = 1
}

# 此处正则需匹配你的V块起始标识,示例为以V开头的行,可按需修改
/^V/ && insert_flag == 1 {
    print "NEW_TRAN"
    insert_flag = 0
    tms_seq = 0
}

{ print }

脚本逻辑说明

  • in_load_dr:标记是否进入"Load DR"之后的处理区域,未触发前忽略所有序列匹配
  • tms_seq:跟踪序列匹配进度,从0开始:
    • 匹配到REST_TMS=1时进入阶段1
    • 阶段1匹配到REST_TMS=0进入阶段2
    • 阶段2匹配到REST_TMS=0进入阶段3,同时设置插入标记
  • insert_flag:当序列匹配完成后,标记下一个V块前需要插入字符串,插入后立即重置标记和序列计数器,避免重复触发
  • 所有行正常输出,仅在指定位置插入NEW_TRAN

适配说明

如果你的V块起始标识不是以V开头(比如是V_BLOCK_START这类特定字符串),请修改脚本中/^V/这一行的正则表达式,替换为匹配你实际V块开头的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:58:17