代码之家  ›  专栏  ›  技术社区  ›  Umber Ferrule Gokhan Tank

在多个文件上查找和替换正则表达式的最佳工具是什么?

  •  25
  • Umber Ferrule Gokhan Tank  · 技术社区  · 16 年前

    如果可能,最好是免费工具。

    此外,搜索多个正则表达式并用不同的字符串替换的选项将是额外的。

    20 回复  |  直到 6 年前
        1
  •  33
  •   GEOCHET S.Lott    16 年前

    Perl说真的,它使系统管理变得如此简单。下面是一个例子:

    perl -pi -e 's/something/somethingelse/g' *.log

        2
  •  23
  •   Frosty    16 年前

    SED快速简单:

    sed -e "s/pattern/result/" <file list>
    

    您也可以使用“查找:

    find <other find args> -exec sed -e "s/pattern/result/" "{}" ";"
    
        3
  •  5
  •   levik    16 年前

    Textpad 在窗户上做得很好。而且它也是一个很好的编辑。

        4
  •  5
  •   user2005187    12 年前

    我已经为Windows编写了一个免费的命令行工具。它叫 rxrepl ,支持Unicode和文件搜索。有些人可能会觉得这很有用。

        5
  •  4
  •   Craig Trader    16 年前

    毫不奇怪,Perl在处理这一问题上做得很好,加上一个体面的外壳:

    for file in @filelist ; do
      perl -p -i -e "s/pattern/result/g" $file
    done
    

    这与以下情况具有相同的效果(但更有效,且无种族条件):

    for file in @filelist ; do
      cat $file | sed "s/pattern/result/" > /tmp/newfile
      mv /tmp/newfile $file
    done
    
        6
  •  4
  •   lindelof    16 年前

    Emacs的目录编辑器具有“dired do query replace regexp”功能,可以在一组标记的文件上搜索和替换regexp。

        7
  •  3
  •   Oli    16 年前

    在窗户下面,我曾经喜欢 WinGrep

    在Ubuntu下,我使用regexxer。

        8
  •  3
  •   Huppie    16 年前

    在Windows上的多个文件上查找和替换 rxFind 非常有帮助。

        9
  •  2
  •   Simon    16 年前

    对于Mac OS X,textWrangler负责此项工作。

        10
  •  2
  •   Community CDub    8 年前

    我个人最喜欢的是 PowerGrep 通过JGSOFT。它与 RegexBuddy 它可以帮助您创建和测试正则表达式,自动备份所有更改(并提供撤消功能),提供解析多个目录的能力(使用文件名模式),甚至支持文件格式,如Microsoft Word、Excel和PDF。

    PowerGrep Screenshot

        11
  •  1
  •   Rafał Dowgird    16 年前

    我要去巴什+找到+塞德。

        12
  •  1
  •   Zsolt Botykai    16 年前

    维姆(和总统;-)。尝试:

    vim -c "argdo! s:foo:bar:gci" <list_of_files>
    

    (我真的很喜欢维姆的-C开关,它很神奇。 或者,如果您已经在vim中,并打开了文件,例如:

    vim <list_of_files>
    

    刚刚发布:

    :bufdo! s:foo:bar:gci
    

    当然 sed perl 也有能力。 Hth.

        13
  •  1
  •   jhw    15 年前

    我有Unix和Ubuntu的奢华;在这两者中,我都使用 呆呆地 对于任何需要逐行搜索和替换的内容,尤其是对于子字符串逐行搜索和替换。 最近,这是对数百个文件(一个目录)中的数百万行处理1100个更改的最快速度。 在Ubuntu上,我是Regexxer的粉丝

     sudo apt-get install regexxer
    
        14
  •  1
  •   Ciantic    13 年前

    在Windows中,有最有效的免费选项:记事本++

    转到“搜索”->“在文件中查找”。可以给出目录、文件模式、设置正则表达式,然后预览匹配项,最后递归替换所有文件。

        15
  •  1
  •   Patrick Steil    12 年前

    我喜欢这个工具:

    http://www.abareplace.com/

    为您提供正则表达式的“键入时”预览…对那些不熟悉Re的人来说太棒了…一次修改成百上千个文件的速度非常快…

    然后让我们撤消您的更改…

    很不错的。。。

    Patrick Steil - http://www.podiotools.com

        16
  •  1
  •   gdvalderrama    8 年前

    如果“textpad”是有效答案,我建议 Sublime Text 放下手。

    多光标编辑是一种更有效的替代方法,通常我会找到,但它 Find in Files “是批量regex/plain查找替换的顶级。

        17
  •  0
  •   Oliver Giesen    16 年前

    jEdit 文件中的regex搜索和替换相当不错。不过,如果你只使用它,那就有点过分了。它也不支持您要求的多表达式替换。

        18
  •  0
  •   Martin R-L    15 年前

    我找到工具了 RxFind 有用(免费操作系统)。

        19
  •  0
  •   victe    8 年前

    Brackets (源代码、deb/ubuntu、osx和windows)对结果具有良好的可视化效果,允许单独选择它们来应用替换。您可以按标准文本、区分大小写或不区分大小写以及regex进行搜索。 非常重要:您可以在搜索中排除文件和目录的模式。

        20
  •  0
  •   user742070    6 年前

    至少25年来,我一直在使用emacs在大量文件中进行大规模替换。跑 etags 要指定要搜索的任何文件集,请执行以下操作:

    $ etags file1.txt file2.md dir1/*.yml dir2/*.json dir3/*.md
    

    然后打开emacs并运行 tags-query-replace ,提示regex和替换:

    \b\(foo\)\b
    \1bar