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

如何用sed仅在指定分号后的数字间插入分号?

解决方案

要实现只在第一个分号后的数字之间插入分号,同时避免修改标识符部分和在行尾添加多余分号,可以使用以下sed命令:

sed -E ':a; s/(;[0-9])([0-9])/\1;\2/; ta'

命令解释

  • :a:定义一个名为a的循环标记
  • s/(;[0-9])([0-9])/\1;\2/:匹配分号后紧跟两个连续数字的模式,将其替换为分号+第一个数字+分号+第二个数字,只处理分号后的数字串,不会影响前面的sp16标识符
  • ta:如果上一步替换操作成功,就跳回到标记a继续循环,直到所有连续数字都被处理完毕

验证效果

执行以下命令:

echo "sp16;111111111111111111111111111111211" | sed -E ':a; s/(;[0-9])([0-9])/\1;\2/; ta'

输出结果:

sp16;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;1

完全符合需求,既不会在第一个分号前插入分号,也不会在行尾添加多余的分号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:12:56