搜索带有正则表达式的文件


1

是否有一个好的免费工具可以搜索文件以查找与正则表达式匹配的文件?

我想搜索特定扩展名的所有文件以查找与此表达式匹配的内容: ^ := '([a-z0-9]{3})'$

我还希望它返回(或更好地跳转到)匹配的行。

有人知道这样的工具吗?

Answers:




2

我想您想做这样的事情:

find / -name *EXTENSION -exec grep "^ := '([a-z0-9]{3})'$" {} \;

它会在整个驱动器(/)中搜索任何结尾的文件EXTENSION,然后grep在该文件上以您的模式运行。您可以grep在其中插入任何标志以获得更具体的行为,但是默认情况下,它会打印出带有匹配行的文件名。

正如Dan所建议的,您可以将其进一步结合sed以实际操作匹配的文件。


如果vaccano正在运行linux,它将立即可用。如果没有,可以使用cygwin运行这些命令。
贾文

0

sed(“流编辑器”)即可。他们的Windows和Linux 都有Sed(如果尚未在默认安装中安装,则应在软件包管理器中)。


sed似乎是一个不合适的答案-它不仅会发现,还会修改。用于正则表达式搜索的经典Unix程序是grep,并且肯定存在Windows版本。肯定会有一个版本,MSYS但是如果您想要的话,那是一个重量级的解决方案grep
2010年

@ Steve314:也许这是一个过于复杂的解决方案...但是它工作得很好。sed可以在很大程度上包含所有greps功能以及更多其他功能,例如,在sed中完成的基本grep是:'s / pattern /&/ p'`。Nerdling的答案当然要好得多,因为它包含find语句和所有内容。
Jarvin'7

我应该在评论之前再次阅读sed。基于模糊的记忆,我认为它可以就地编辑文件。由于它实际上是编辑流(我应该真正知道-是以它的名义),所以它的答案比我想象的要明智得多。
2010年

-1

您将看到的最快的搜索工具是Everything,它不会建立索引,而是直接访问NTFS记录并查找文件,而无需查看和遍历硬盘驱动器

它支持正则表达式

这是我的每次搜索工具,它会在您键入内容时显示结果,还有什么比这更快的呢?


有趣,但是我不知道我的硬盘足够大,无法“为Windows 2000,XP,2003,Vista,2008和Windows 7下载所有内容” ;-)
Steve314 2010年

不过,请看FAQ(常见问题解答)-项目1.3“否,“所有内容”都不会搜索文件内容,仅搜索文件和文件夹名称。”,我认为这并不能回答问题-尽管问题的措词不清楚。
2010年

当我告诉其他人时,它的名称经常使人感到困惑:P,是的,我是一个可怜的读者,并且没有读懂问题的最后两行。无论如何,它将对您的日常文件搜索任务有很大帮助
LifeH2O 2010年

一切都可以使索引不是很大。
snowdude 2012年

是的,它确实可以建立索引,但是只需很少的时间即可完成。
LifeH2O 2013年
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.