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

前端之家收集整理的这篇文章主要介绍了正则表达式 – 搜索并替换成千上万个文件中的数百个字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在考虑更改我工作的(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个东西.就处理器时间而言,这不是最有效的方式,但这不是瓶颈.>这种方法在理论上是有效的,但如果它在第一次尝试中有效,那么你的代码库比我见过的任何东西(那个大小)更清晰.几乎可以肯定会有一些惊喜:一个与正则表达式不匹配的硬编码路径,一个与好名字相撞的坏名称,还有一些其他人无法想到的故障.我建议从一对或两对名字开始小,每次更换后编译,并在遇到麻烦时撤退.如果你这样做,你可以将它设置为一夜之间运行,早上你将拥有一个几乎完成的工作代码库,以及一个引起麻烦并需要人工关注的名称列表.

猜你在找的正则表达式相关文章