是否有任何OS X应用程序简化了多个文件的搜索和替换?


9

我正在寻找OS X工具,该工具可让我搜索并替换多个文件中的搜索字符串。要求如下:

  • 搜索和替换
  • 按正则表达式搜索
  • 搜索多个文件
  • 搜索嵌套目录结构
  • 替换表达式可以使用搜索中的值(正则表达式)
  • 该工具具有易于使用的用户界面
  • 最好免费

我知道有些文本编辑器(如BBEdit)具有此功能,但我希望使用一种轻巧的工具,不需要我先打开文件即可进行编辑。

如果没有满足这些要求的工具,我还将考虑使用命令行替代方法。我知道perlsed支持类似的东西- 在这种情况下,我可以定义为Bash 别名函数的解决方案将受到欢迎。

Answers:


9

我通常使用TextMate

TextMate搜索和替换对话框

TextMate(1)是/曾经是购买产品,但是TextMate 2目前正在gitHub上进行积极的开源开发,并且可以免费使用。


5

我用的是Sublime Text,太好了!

查找和替换的屏幕截图

崇高文字:

  • 可以免费评估(没有时间限制)
  • 可以搜索和替换
  • 可以按正则表达式搜索
  • 可以搜索多个文件
  • 可以搜索嵌套目录结构
  • 可以在替换表达式中使用搜索中的值
  • 具有易于使用的用户界面

1
您能否更具体一点,并描述SublimeText如何解决问题中所述的问题?
nohillside

他们的网站(提供的链接告诉您一切),但是...您可以免费评估(没有时间限制)搜索并替换-是。按正则表达式搜索-是。搜索多个文件-是。搜索嵌套目录结构-是。替换表达式可以使用搜索中的值(正则表达式)-是。该工具具有易于使用的用户界面-是。最好是免费-是(某种)。
Mike

3

您不必使用BBEdit打开文件。您只需将其指向一个文件夹。这是一个非常强大的工具,我经常使用该工具处理大量HTML文件。


3

除了使用文本编辑器的其他解决方案之外,我还发现了FAR-查找和替换工具,这是一个多平台查找和替换工具。它不是最漂亮的,但看起来确实可以满足我的需求。

http://findandreplace.sourceforge.net/


2

我经常这样使用Ruby脚本:

Dir["**/*.txt"].each { |f|
  IO.write(f, IO.read(f).gsub(/search/, "replace"))
}

或者你可以使用gets(nil)-i

ruby -i -e 'print gets(nil).gsub(/search/, "replace")' *.txt

如果安装Bash 4并启用globstar,则也可以**在shell中使用:

sed -i '' 's/search/replace/g' **/*.txt

1

正是这样sed写的,它符合您的所有要求,只是学习曲线有些陡峭。

要获得更平缓的学习曲线,请尝试使用BareBones的TextWrangler。它使用BBEdit文本引擎,并且我相信它具有老大哥的完整搜索和替换功能。


1
我对一些bash编程和脚本很熟悉,但是从未使用过任何高级的东西sed。您能否提供一个示例,说明如何使用它sed来替换一系列文件中的文本,例如上述(当前)ruby答案中的文本?
nwinkler

-1

看看我的“应用搜索和替换”。您可以在多个文件或目录上使用它,保护搜索/替换字符串,并可以使用正则表达式。


这是如何工作-为什么更好的是它比其他的答案-请提供超过一个链接
user151019

1
嗨,欢迎问不同!尽管我们不介意开发人员在解决出现的问题时会推荐他们的产品,但我们确实要求您提供清晰的背景信息,说明您的产品为什么是答案以及它如何解决问题。有关如何询问不同和StackExchange Q&A格式的更多信息,请参见常见问题解答
伊恩·C(

我猜它具有与此处推荐的其他工具相同的功能。区别在于您具有GUI,并且可以保存包含搜索/替换字符串的文件。它具有nwinkler要求的所有功能。它可以跨多个文件/嵌套目录结构搜索和替换(也使用正则表达式),并且具有(至少我认为是)易于使用的GUI。
thomasguenzel 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.