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

如何用sed在固定字母+随机数字的字符串间插入空格?

解决「固定字母+随机数字」模式插入空格的sed方案

问题分析

你需要将类似A01B02的格式替换为A01 B02,之前尝试的sed命令都存在逻辑错误:

  • sed -i 's/A.*B.*/A.* B.*/g' file:.*是贪婪匹配,且替换部分是字面字符串,会把匹配内容直接替换成A.* B.*,完全不符合预期
  • sed -i 's/A*B*/A* B*/g' file:A*/B*匹配0个或多个对应字母,替换逻辑完全错误
  • sed -i 's/A.B./A. B./g' file:.匹配任意单个字符,替换部分的.是字面量,会破坏原有数字
  • sed -i 's/A[0-9]B[0-9]/A[0-9] B[0-9]/g' file:替换部分的[0-9]是字面字符串,不是引用匹配到的数字,会导致错误替换

正确的sed命令

基础POSIX兼容版本

sed -i 's/A\([0-9]\+\)B\([0-9]\+\)/A\1 B\2/g' file
  • A\([0-9]\+\):捕获A后面的1个或多个数字,存为分组1
  • B\([0-9]\+\):捕获B后面的1个或多个数字,存为分组2
  • A\1 B\2:将分组1、分组2的内容放回,中间插入空格

GNU sed扩展正则版本(更简洁)

sed -i -E 's/A([0-9]+)B([0-9]+)/A\1 B\2/g' file

使用-E启用扩展正则,无需对括号转义,写法更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 18:12:07