Breitensuche mit ack oder grep


11

Wenn ich zB mein Home-Verzeichnis mit ack(oder grep) durchsuche , möchte ich normalerweise wissen, wo ich eine bestimmte Option festgelegt habe.

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


1
Leider scheint die Antwort nein zu sein.
Nifle

4
Es scheint, dass ich alle paar Monate dies google und auf diese Seite zurückkehre.
Gregory Nisbet

2
@GregoryNisbet Meine „Lösung“ war der Wechsel zu ag, der etwa 5- bis 10-mal schneller ist als ackund keine Nachteile bietet. In Kombination mit dem Wechsel zu SSD hatte ich seitdem kein Problem mehr.
Profpatsch

Antworten:


3

Ich weiß es nicht, ackaber mit Tools, wie grepich sie normalerweise benutze:

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

Der Teil zwischen (und )stellt sicher, dass zuerst die Dateien auf Ebene 1 aufgelistet werden und danach die Dateien auf Ebene 2 und tiefer (Sie können variieren). xargsfüttert die Dateinamen pro 50 bis grep.

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


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

Wenn Sie nicht verwenden -print0, um zu finden, tun Sie es zumindest find . -maxdepth 1 -exec grep {} +;. mywiki.wooledge.org/BashFAQ/020
Begrenzte Versöhnung
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.