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

如何用单条Sed命令完成三类指定文本处理并输出到新文件?

Sed单命令实现多文本处理需求

最终合并命令

sed -E '/^{master}$/{$!N;/\n.*@.*>.*\|.*$/d}; /^[A-Za-z]{3}\s*[0-9]{1,2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}$/d; s/^<rpc-reply>$/<rpc-reply">/; /^<\/rpc-reply>$/a <ENDSTRING}' input.txt > output.txt

各操作细节解释

  • 删除目标格式上方的{master}行
    用/^{master}$/{$!N;/\n.*@.*>.*\|.*$/d}实现:匹配到单独的{master}行后,读取下一行($!N避免处理最后一行时出错),如果下一行符合string@string>string|string的格式(.*@.*>.*\|.*兼容>、|前后有无空格的情况),就删除这两行。
  • 删除目标格式下方的日期行
    启用扩展正则(-E参数)后,用/^[A-Za-z]{3}\s*[0-9]{1,2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}$/d匹配并删除日期行,解决了基础正则不支持{n}语法的问题。
  • 修改并追加
    • s/^<rpc-reply>$/<rpc-reply">/:精准替换单独的<rpc-reply>行,在末尾添加双引号
    • /^<\/rpc-reply>$/a <ENDSTRING>:匹配到</rpc-reply>行后,在该行下方追加<ENDSTRING>

示例验证

输入文本

{master}
test@test-re0> show version | display xml
Oct 14 22:55:58

test@test-re0> show hardware|display xml
Jan 04 01:55:58

输出文本

test@test-re0> show version | display xml
<rpc-reply">

test@test-re0> show hardware|display xml


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:55:30