搜索并替换以下号码

时间:2014-07-03 11:46:20

标签: vim

在包含数字范围(4-5,12-20)的文件中,我想替换所有"数字编号+ 1"范围由"数字f。" (45-46> 45 f。)。

任何想法如何实现?对不起,如果之前已经介绍过,直到现在我什么也没找到。

2 个答案:

答案 0 :(得分:3)

由于这个条件(M + 1 = N)很难用正则表达式表达,这是:help sub-replace-expression的情况:匹配所有数字范围,通过{{1将它们分成开始和结束数字捕获组。然后在\(...\)替换表达式中,检查条件,通过\=访问数字,然后返回原始结果(submatch())或精简表单。

submatch(0)

答案 1 :(得分:0)

如果已创建文件,请使用GREP命令解析文件并使用SED命令进行替换。或者使用find。我确信这两种方式都在这里。