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

如何使用sed命令定位指定行列替换未知数值?

使用sed修改指定行指定列的数值

针对你的需求,我们可以利用sed的正则匹配和捕获组功能,精准定位到第2行第21列开始的数值并替换为32,不管原数值是几位。

适用BSD sed的命令(如macOS默认sed)

sed -i '' -E '2s/^(.{20})[0-9]+/\132/' example.txt

适用GNU sed的命令(如Linux默认sed)

sed -i '2s/^(.{20})[0-9]\+/\132/' example.txt

命令解释:

  • 2:限定仅对第2行执行替换操作
  • ^(.{20}):匹配行首开始的前20个字符,用括号捕获这部分内容,后续通过\1引用
  • [0-9]+(GNU sed中也可写[0-9]\+):匹配第21列开始的一个或多个连续数字,覆盖任意位数的原数值
  • \132:将捕获的前20个字符与目标数值32拼接,替换掉原来的匹配内容

效果验证:

原文件第2行如果是this is my number = 131;,执行命令后会变为this is my number = 32;;如果原数值是30或130,替换后同样会得到this is my number = 32;。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:01:25