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

如何用Awk命令排除文件中指定起止标记间的内容?

用awk排除指定段落的解决方案

你只需要调整原有awk命令中标记变量f的判断逻辑和执行顺序,就能实现反向操作,以下分两种场景给出命令:

场景1:排除整个段落(包括# Start U23 Team和# End U23 Team两行)

执行这条命令即可:

/# Start U23 Team/{f=1} !f; /# End U23 Team/{f=0}

逻辑说明:

  • 初始状态下标记f为0(默认值),此时!f为真,正常打印所有行
  • 当匹配到# Start U23 Team时,把f设为1,后续行的!f为假,停止打印
  • 当匹配到# End U23 Team时,把f设为0,后续行恢复正常打印
  • 由于# Start U23 Team行触发f=1后才判断!f,# End U23 Team行先判断!f(此时f还是1)再设为0,所以这两行都不会被打印

场景2:保留起止行,仅排除中间的球员内容

如果你想留下# Start U23 Team和# End U23 Team,只去掉中间的段落内容,用这条命令:

/# End U23 Team/{f=0} !f; /# Start U23 Team/{f=1}

逻辑说明:

  • 初始f=0,正常打印所有行
  • 遇到# Start U23 Team时,先执行!f(此时f=0,所以打印该行),再把f设为1,后续行停止打印
  • 遇到# End U23 Team时,先把f设为0,再执行!f(此时f=0,所以打印该行),后续行恢复打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:45:56