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

如何使用sed替换特定匹配模式且不丢失文件原有内容

解决方法

你可以直接用sed的替换命令结合分组捕获实现需求,不需要额外拆分处理流程,原有文件中不匹配的内容会原样保留:

sed -E 's/([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})/\1\2\3-\4\5\6/g' file.txt > output.txt

参数说明

  • -E:启用扩展正则表达式,减少括号的转义字符输入
  • 替换规则里用6个分组分别捕获每一组两位的十六进制字符,拼接时去掉前3组、后3组内部的空格,两组之间插入短横线-
  • 末尾的g表示全局替换,一行内如果有多个符合规则的模式都会被替换

如果需要直接修改原文件,建议先备份再操作,命令如下:

# 执行后会生成file.txt.bak备份文件,原文件直接修改为替换后的内容
sed -i.bak -E 's/([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})\s([a-z0-9]{2})/\1\2\3-\4\5\6/g' file.txt

执行上述命令后,你给出的样例输入会直接输出期望的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:03