是否有一个简单轻量级的程序来搜索文本文件并用正则表达式替换字符串?
10 回答
Perl 擅长于此,它的 -i、-n、-p 和 -e 开关。有关示例,请参阅我的演讲Field Guide To The Perl Command Line Switches中的幻灯片。
其他人提到了 sed 和 awk,Perl 受到它们的启发也就不足为奇了。但是,对于您和/或您的用户来说,Perl 可能更容易获得和安装。
还有sed,它是学习基础知识的有用工具 - 非常适合进行基于正则表达式的快速替换。
快速示例,将 input.txt 中的“foo”更改为“bar”...
sed -e 's/foo/bar/g' input.txt > output.txt
许多体面的文本编辑器也有这个选项,vim、emacs、EditPlus 等等。
sed 或 awk。我推荐书sed&awk来掌握主题或小册子sed&awk 袖珍参考,以供快速参考。当然掌握正则表达式是必须的……
你没有提到你正在使用什么平台......如果你对一个相对简单的 GUI 工具感兴趣,那就是regexxer。否则,前面提到的 sed 等命令行工具会非常有用。
这取决于您是在处理一个文件还是多个文件。冒着被嘲笑的风险,我假设您使用的是 Windows,因为您没有指定平台。
Notepad2可以一次处理一个文件,而且速度极快、重量轻且便携。
要一次搜索/替换多个文件,请尝试Agent Ransack。
使用 emacs 或 xemacs。它具有完美的正则表达式替换功能。您甚至可以使用 /1(或 /2 或 /3)之类的结构来在替换中获取匹配的表达式,该表达式用 ( ) 围绕它们进行标识。为了防止 vi-emacs 冲突:vi 也将具有类似的结构。我不确定是否有任何现代编辑器支持此功能。
提示:首先尝试一个简单的替换,这可能有点不清楚,因为您可能会添加“\”来逃避特殊的 RegExp 结构......
不知道平台,我会说这个页面上弹出的广告可能是合适的:PowerGREP。对此一无所知,但听起来与您正在寻找的相似。
试试 WildGem:http ://www.skytopia.com/software/wildgem
我是创造者。小巧、超快、便携且独立。您可以使用正则表达式,但它也有自己的简单语言语法,使查询在理论上更容易。
我引用:
与类似程序不同,WildGem 速度很快,具有双分割显示,并在您实时键入时更新或突出显示匹配项。独特的颜色编码语法使您可以轻松查找/替换文本,而不必担心必须转义特殊符号。