【问题标题】:Regex Search and Replace Program正则表达式搜索和替换程序
【发布时间】:2010-09-16 05:04:57
【问题描述】:

是否有一个简单轻量级的程序来搜索文本文件并用正则表达式替换字符串?

【问题讨论】:

    标签: regex search


    【解决方案1】:

    搜索:grep - 简单快速。包含在 Linux 中,here 是 Windows 版本,不确定 Mac。

    用于替换:sedHere 是 Windows 版本,不确定是 Mac。

    当然,如果您想在搜索和替换时实际打开文件并查看其内容,您可以使用emacs。或ConTEXT。或vim。或者你有什么。 ;)

    另见this question

    【讨论】:

    • 现代 Mac 基于 Unix,标准安装了 sedawk
    • 如果需要支持二进制模式的 sed 版本,Windows 版本不会削减它。但是 sed 4.1.5 的 cygwin 版本支持二进制模式。
    【解决方案2】:

    Perl 擅长于此,它的 -i、-n、-p 和 -e 开关。有关示例,请参阅我的演讲 Field Guide To The Perl Command Line Switches 中的幻灯片。

    其他人提到过 sed 和 awk,Perl 受到它们的启发也就不足为奇了。但是,对于您和/或您的用户来说,Perl 可能更容易获取和安装。

    【讨论】:

    • 伟大的实地指南。不知何故,在过去的 7 年里,我从来不知道 -l 或 -p...
    【解决方案3】:

    还有sed,它是学习基础知识的有用工具 - 非常适合快速进行基于正则表达式的替换。

    快速示例,将 input.txt 中的 "foo" 更改为 "bar" ...

    sed -e 's/foo/bar/g' input.txt > output.txt
    

    【讨论】:

      【解决方案4】:

      许多不错的文本编辑器也有这个选项,vim、emacs、EditPlus 等等。

      【讨论】:

        【解决方案5】:

        sed 或 awk。我推荐书籍sed&awk 来掌握主题或小册子sed&awk pocket reference 以供快速参考。当然mastering regular expressions是必须的……

        【讨论】:

          【解决方案6】:

          你没有提到你使用的是什么平台...如果你对一个相对简单的 GUI 工具感兴趣,有regexxer。否则,前面提到的 sed 等命令行工具会非常有用。

          【讨论】:

            【解决方案7】:

            这取决于您是在处理一个文件还是多个文件。冒着被嘲笑的风险,我假设您使用的是 Windows,因为您没有指定平台。

            Notepad2 可以一次处理一个文件,而且速度极快、重量轻且便携。

            要一次搜索/替换多个文件,请尝试Agent Ransack

            【讨论】:

            • Agent Ransack 不支持直接替换功能,但是您可以在 Notepad++ 中打开所有找到的文件并在所有打开的文档中进行替换!
            【解决方案8】:

            不知道平台,我会说这个页面上弹出的广告可能是合适的:PowerGREP。对此一无所知,但听起来与您要查找的内容相似。

            【讨论】:

              【解决方案9】:

              使用 emacs 或 xemacs。它具有完美的正则表达式替换功能。您甚至可以使用 /1(或 /2 或 /3)之类的结构来在替换中获取匹配的表达式,该表达式用 ( ) 围绕它们进行标识。为了防止 vi-emacs 冲突:vi 也将具有类似的结构。我不确定是否有任何现代编辑器支持此功能。

              提示:首先尝试一个简单的替换,这可能有点不清楚,因为您可能会添加“\”来逃避特殊的 RegExp 结构...

              【讨论】:

              • 嗯? emacs“简单轻量”吗?啊! :^)
              【解决方案10】:

              试试 WildGem:http://www.skytopia.com/software/wildgem

              我是创造者。小巧、超快、便携且独立。您可以使用正则表达式,但它也有自己的简单语言语法,理论上使查询更容易。

              我引用:

              与类似程序不同,WildGem 速度很快,具有双分割显示,并在您实时键入时更新或突出显示匹配项。独特的颜色编码语法使您可以轻松查找/替换文本,而不必担心必须转义特殊符号。

              截图如下:

              【讨论】:

                猜你喜欢
                • 2013-06-14
                • 2018-05-25
                • 2010-11-25
                • 2010-10-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多