Wie verwenden Sie grep mit großen (Millionen) Anzahl der Dateien, die Suche nach einer Zeichenkette und erhalten das Ergebnis in wenigen Minuten

Diese Frage ist in Bezug auf
Wie Sie mit grep effiziente?

Ich versuche, die Suche nach einem "string" in einem Ordner mit 8-10 Millionen kleine (~2-3kb) nur-text-Dateien. Ich muss wissen, Sie alle Dateien, die die "string".

Zuerst habe ich dieses

grep "string"

War super langsam.

Dann habe ich versucht

grep * "string" {} \; -print

Basierend auf verknüpfte Frage, ich habe dieses

 find . | xargs -0 -n1 -P8 grep -H "string"

Bekomme ich diesen Fehler:

xargs: argument line too long

Kennt jemand eine Möglichkeit, diese Aufgabe relativ schneller?

Ich betreibe diese Suche auf einer server-Maschine, die mehr als 50 GB an RAM zur Verfügung steht, und 14 Kernen der CPU. Ich wünschte irgendwie ich könnte mit allen, die Verarbeitungsleistung zum ausführen dieser Suche schneller.

  • Sie müssen wissen, in welcher Datei der string ist in? Oder ist es genug, um zu wissen, die Zeichenfolge in eine oder mehrere Dateien in das Verzeichnis?
  • Ich muss wissen, alle die mit dem Namen, wo die Zeichenfolge gefunden wurde.
InformationsquelleAutor Watt | 2013-10-30
Schreibe einen Kommentar