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