首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在每一行的末尾添加跨越数字的括号

在每一行的末尾添加跨越数字的括号
EN

Unix & Linux用户
提问于 2014-07-28 12:04:57
回答 2查看 342关注 0票数 0

我有一份文件,其行文如下:

代码语言:javascript
运行
复制
ram_reg_10/raja_reg_9/raghu_reg_8  
abc_reg_4/bcd_reg_5  
cad/pqr_reg_91 

我只想在vi编辑器中的每一行中最后将字符串"_reg_number“转换为数。

产出应是:

代码语言:javascript
运行
复制
ram_reg_10/raja_reg_9/raghu[8]  
abc_reg_4/bcd[5]  
cad/pqr[91]  

我试过:

代码语言:javascript
运行
复制
:%s?_reg_[0-9]$?\[[0-9]\]?g

但它提供了:

代码语言:javascript
运行
复制
ram_reg_10/raja_reg_9/raghu[[0-9]]  
abc_reg_4/bcd[[0-9]]  
cad/pqr_reg_91

怎么做?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2014-07-28 12:26:48

在指挥模式下:

代码语言:javascript
运行
复制
:%s/_reg_\([0-9]\+\)$/[\1]/

在这里,我们使用\+在末尾匹配一个或多个数字组。所以我们不能用像cad/pqr_reg_这样的线来代替。

票数 0
EN

Unix & Linux用户

发布于 2014-07-28 12:09:03

就用这个吧:

代码语言:javascript
运行
复制
:%s/_reg_\([0-9]*\)$/[\1]/

也就是说,用\(\)捕捉数字,然后用\1将其打印回来。注意,也没有必要使用/g,因为每一行只执行一次。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/146974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档