Breitensuche mit ack oder grep

511
Profpatsch

Wenn ich zB mit ack(oder grep) mein Heimatverzeichnis suche, möchte ich normalerweise wissen, wo ich eine bestimmte Option einstelle.

Da die meisten Konfigurationsdateien sehr nahe beieinander liegen, ~würde sich die Geschwindigkeit erheblich beschleunigen, ackwenn ich zuerst die Breite suchen könnte. Ist das möglich?

11
Leider scheint die Antwort nein zu sein. Nifle vor 9 Jahren 1
Es scheint, dass ich alle paar Monate google und auf diese Seite zurückkomme. Gregory Nisbet vor 7 Jahren 4
@GregoryNisbet Meine "Lösung" bestand darin, auf "ag" umzuschalten, was etwa 5-10 Mal schneller als "ack" ist und keine Nachteile aufweist. Kombiniert mit der Umstellung auf SSD hatte ich das Problem seitdem nicht mehr. Profpatsch vor 7 Jahren 2

1 Antwort auf die Frage

2
Guido Leenders

Ich weiß es nicht, ackaber mit Werkzeugen, die grepich normalerweise verwende:

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

Der Teil zwischen (und )sorgt dafür, dass zuerst die Dateien auf Stufe 1 aufgelistet werden und danach die auf 2 und tiefer (Sie können variieren). xargsfüttert die Dateinamen pro 50 an grep.

Natürlich hängt es davon ab, welche Variante findauf Ihrer Plattform verfügbar ist. Wenn Sie vor etwas über 30 Jahren etwas ausführen, müssen Sie die Sortierung nach der Anzahl der Schrägstriche verwenden.

MMV (Archlinux): `grep: ./.macromedia/Flash_Player/#SharedObjects/Q2GSRK6Y/www.mixcloud.com/media: Ist ein Verzeichnis` xtian vor 6 Jahren 0
Wenn Sie `-print0` nicht zum Suchen verwenden, tun Sie zumindest` find. -maxdepth 1 -exec grep {} +; `. https://mywiki.wooledge.org/BashFAQ/020 Limited Atonement vor 6 Jahren 0