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

如何使用sed反向引用提取行中的公司编号与名称

用sed反向引用实现仅保留公司编号和名称

没问题!咱们把这个需求用sed反向引用的方式实现,核心思路就是先精准捕获你想要保留的内容,再用反向引用把它作为整行输出,比原来的替换方式更灵活可控~

核心命令写法

假设你的每行格式是「数字编号 公司名称: 其他冗余内容」,我们分两种正则语法场景给出命令:

1. sed基础正则(兼容所有sed版本)

sed 's/\([0-9]* .*:\).*/\1/' filename.txt

拆解一下各部分的作用:

  • \([0-9]* .*:\):这是第一个捕获组(sed基础正则里括号要加反斜杠转义),专门抓你要保留的「编号+公司名称+冒号」部分
  • .*:匹配冒号后面的所有冗余内容,确保全部被替换掉
  • \1:反向引用第一个捕获组的内容,也就是把整行替换成我们捕获到的编号和名称

2. sed扩展正则(更简洁,现代系统默认支持)

加-r参数后可以不用转义括号,写起来更清爽:

sed -r 's/([0-9]* .*:).*/\1/' filename.txt

额外调整:如果不需要保留末尾的冒号

要是你只想留编号和公司名称,去掉冒号,只需要把捕获组的范围调整到冒号之前就行:

# 基础正则版
sed 's/\([0-9]* .*\):.*/\1/' filename.txt
# 扩展正则版
sed -r 's/([0-9]* .*):.*/\1/' filename.txt

举个实际例子

假设你的filename.txt内容是:

123 云帆科技有限公司: 杭州市西湖区科技园 135xxxxxxx
456 悦享商贸股份公司: 广州市天河区商圈 136xxxxxxx

用不带冒号的命令处理后,输出就是:

123 云帆科技有限公司
456 悦享商贸股份公司

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:43:29