So verwenden Sie grep mit einer großen (Millionen) Anzahl von Dateien, um nach Zeichenfolgen zu suchen und das Ergebnis in wenigen Minuten zu erhalten

Diese Frage bezieht sich aufWie grep effizient nutzen?

Ich versuche, in einem Ordner mit 8-10 Millionen kleinen (~ 2-3 KB) Nur-Text-Dateien nach einer "Zeichenfolge" zu suchen. Ich muss alle Akten kennen, die „Schnur“ haben.

Zuerst habe ich das benutzt

grep "string"

Das war super langsam.

Dann habe ich es versucht

grep * "string" {} \; -print

Basierend auf einer verknüpften Frage habe ich diese verwendet

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

Ich erhalte diesen Fehler:

xargs: argument line too long

Kennt jemand einen Weg, um diese Aufgabe relativ schnell zu erledigen?

Ich führe diese Suche auf einem Server aus, auf dem mehr als 50 GB RAM und 14 Kerne CPU verfügbar sind. Ich wünschte, ich könnte irgendwie all diese Rechenleistung nutzen, um diese Suche schneller auszuführen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage