使用ack或grep进行广度优先搜索


11

当我使用ack(或grep)搜索例如我的主目录时,通常我想知道在哪里设置特定选项。

由于大多数配置文件都非常接近,~因此ack如果我可以搜索广度优先,它将大大加快速度。这可能吗?


1
可悲的是,答案似乎是否定的。
Nifle 2014年

4
似乎每隔几个月我就会在Google上搜索一下并返回此页面。
格雷戈里·尼斯贝

2
@GregoryNisbet我的“解决方案”是切换到ag,它比快5-10倍,ack并且没有任何缺点。从那以后,结合切换到SSD,我就再也没有问题了。
Profpatsch,2016年

Answers:


3

我不知道,ackgrep通常使用诸如此类的工具:

( find . -maxdepth 1 -print ; find . -mindepth 2 -print ) | xargs -n 50 -exec grep TXT

(和之间的部分)确保首先列出级别1的文件,然后列出级别2和更深的文件(您可以更改)。xargs将文件名每50送入grep

当然,这取决于find您的平台上提供哪种。如果运行30年前的版本,则需要使用诸如对正斜杠数量进行排序的方法。


MMV(Archlinux):grep: ./.macromedia/Flash_Player/#SharedObjects/Q2GSRK6Y/www.mixcloud.com/media: Is a directory
xtian

如果您不打算使用-print0find,至少要这样做find . -maxdepth 1 -exec grep {} +;mywiki.wooledge.org/BashFAQ/020
有限赎罪
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.