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

如何使用sed替换文件中以ABC开头行的10-15位固定位置内容

sed命令修正方案

错误原因

  • 行首ABC丢失:原正则将ABC写在捕获分组外,替换时未引用该部分内容,导致直接被丢弃
  • 插入而非替换:原正则仅匹配到第12位(3位ABC+后续9位字符),未覆盖需要替换的第10-15位内容,原有对应位置的字符没有被匹配删除,最终表现为插入新字符而非替换

正确命令

仅将结果输出到终端:

sed -r '/^ABC/s/^(.{9}).{6}/\177777/' sample.out

需要直接修改原文件(Linux等GNU sed环境):

sed -ri '/^ABC/s/^(.{9}).{6}/\177777/' sample.out

macOS环境使用:

sed -i '' -r '/^ABC/s/^(.{9}).{6}/\177777/' sample.out

命令说明

  • 开头的/^ABC/是地址限定规则,仅对以ABC开头的行执行后续替换操作,其余行直接原样输出
  • ^(.{9})匹配行的前9位字符(包含开头的ABC),存入第一个捕获分组
  • .{6}匹配第10到15位共6个字符,替换时这部分内容会被直接丢弃
  • 替换内容\177777中,\1指代第一个捕获分组的前9位内容,后续拼接需要替换的77777

注意:第10到15位共6个字符位,如果你需要严格占满6个字符位,将替换字符串改为777777即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:04