加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 搜索并替换成千上万个文件中的数百个字符串?

发布时间:2020-12-14 05:59:28 所属栏目:百科 来源:网络整理
导读:我正在考虑更改我工作的(C/C++)项目中数百个文件的文件名.问题是我们的软件有成千上万的文件,包括(即#include)这些数百个将被改变的文件.这看起来像是一场维护噩梦.如果我这样做,我将被困在Ultra-Edit中数周,手动滚动数百个正则表达式: ^#include.*["/]s
我正在考虑更改我工作的(C/C++)项目中数百个文件的文件名.问题是我们的软件有成千上万的文件,包括(即#include)这些数百个将被改变的文件.这看起来像是一场维护噩梦.如果我这样做,我将被困在Ultra-Edit中数周,手动滚动数百个正则表达式:

^#include.*["</]stupid_name.*$

#include <dir/new_name.h>

这种苦差事要比用勺子在南极的沉没潜艇中剥掉数百个土豆更糟糕.
我认为将输入和输出放入如下表格中是理想的:

stupid_name.h <-> <dir/new_name.h>
stupid_nameb.h <-> <dir/new_nameb.h>
stupid_namec.h <-> <dir/new_namec.h>

并将其提供给正则表达式引擎/工具/ app /等…

我的终极问题:是否有工具可以做到这一点?

奖金问题:它是多线程的吗?

我在这个网站上查看了很多搜索和替换主题,并找到了许多标准查询,询问了以下问题的变体:

标准问题:替换N个文件中的一个术语.

而不是:

我的问题:替换N个文件中的N个术语.

提前感谢您的回复.

解决方法

正如Mark Wilkins所说,这是一个可行的计划,你喜欢任何正则表达式的脚本编写工具,但我建议另外几点:

>使用两个脚本:一个用于将列表转换为正则表达式,另一个用于应用它们.试图在一个脚本中完成这两项工作就是在寻找麻烦.>不要忘记更改#include指令并同时重命名头文件.>如果你知道如何改变N个文件中的一个东西,那么,你可以绕过你要改变的K个东西.就处理器时间而言,这不是最有效的方式,但这不是瓶颈.>这种方法在理论上是有效的,但如果它在第一次尝试中有效,那么你的代码库比我见过的任何东西(那个大小)更清晰.几乎可以肯定会有一些惊喜:一个与正则表达式不匹配的硬编码路径,一个与好名字相撞的坏名称,还有一些其他人无法想到的故障.我建议从一对或两对名字开始小,每次更换后编译,并在遇到麻烦时撤退.如果你这样做,你可以将它设置为一夜之间运行,早上你将拥有一个几乎完成的工作代码库,以及一个引起麻烦并需要人工关注的名称列表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读