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

批量处理文件##TestA##块:添加注释与新增行的技术问询

解决方案:批量处理文本块的注释与内容插入

单个文件的sed实现脚本

直接用sed的分支和模式空间处理,这个脚本能精准定位目标块并完成需求:

sed -i.bak '/^##TestA##$/{
    N
    /\n##########$/{
        :loop
        n
        /^##########$/{
            i\##This is the new line we added
            p
            b end
        }
        s/^/##/
        p
        b loop
    }
}
:end' file.txt

脚本逻辑拆解

  • /^##TestA##$/:精准匹配单独一行的##TestA##
  • N:将下一行(块起始分隔线##########)读入模式空间
  • /\n##########$/:确认下一行是分隔线后,进入块处理流程
  • :loop:定义循环标签,用于遍历块内每一行内容
  • n:读取下一行到模式空间
  • /^##########$/:如果读到块结束的分隔线,先插入指定新行(已添加##注释),再打印分隔线并跳出循环
  • s/^/##/:给当前行开头添加##注释
  • p:打印处理后的行
  • b loop:回到循环继续处理下一行

批量处理数百个文件

如果要处理当前目录下所有.txt文件,用shell循环即可:

for file in *.txt; do
    sed -i.bak '/^##TestA##$/{
        N
        /\n##########$/{
            :loop
            n
            /^##########$/{
                i\##This is the new line we added
                p
                b end
            }
            s/^/##/
            p
            b loop
        }
    }
    :end' "$file"
done

注意事项

  • -i.bak:修改文件时自动生成原文件的备份(如file.txt.bak),若无需备份可改用-i,但强烈建议保留备份以防数据丢失
  • 若目标起始块的分隔线可能包含行尾空格,可将正则调整为/\n##########\s*$/,适配空白字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:45:28