String in seeeehr grossen Textdateien effizient suchen
Hallo Liste, ich muss sehr grosse Textdateien (ca. 270 MB) nach Strings durchsuchen, z.B. grep -o "PAPER[[:alnum:]=\@]\{14\}" test.txt > ergebnisdatei.txt Das endet meist damit, dass der Speicher überläuft und das Shellscript "abschmiert". Maschine ist P4, 2,4 GHz mit 1 GB RAM. Kennt jemand eine effizientere Möglichkeit, die Datei nach den diversen Strings zu durchsuchen und sie auszugeben? Wäre es sinnvoller, das aus C++ heraus zu machen (müsste ich halt noch lernen), sprich kann C++ besser mit so einer Aufgabe umgehen als Shellscripte? Viele Grüsse Joachim
Joachim Kieferle wrote:
Hallo Liste,
ich muss sehr grosse Textdateien (ca. 270 MB) nach Strings durchsuchen, z.B. grep -o "PAPER[[:alnum:]=\@]\{14\}" test.txt > ergebnisdatei.txt
Das endet meist damit, dass der Speicher überläuft und das Shellscript "abschmiert". Maschine ist P4, 2,4 GHz mit 1 GB RAM.
Kennt jemand eine effizientere Möglichkeit, die Datei nach den diversen Strings zu durchsuchen und sie auszugeben?
Wäre es sinnvoller, das aus C++ heraus zu machen (müsste ich halt noch lernen), sprich kann C++ besser mit so einer Aufgabe umgehen als Shellscripte?
Hallo Liste, ... ich hätte noch die 5 Minuten bis zur Lösung abwarten sollen ;-)). Denn ich habe die ganze Zeit versucht, eine Textdatei ohne Leerzeichen und Zeilenumbrüche zu durchsuchen, also eine fast unendlich lange Zeile. Da lief jedes mal der Speicher als auch Swap über. Wenn ich die Datei in mehrere Zeilen aufteile, also an bestimmten Stellen einen Zeilenumbruch einfüge, läuft "grep" wunderbar schnell. Viele Grüsse Joachim
participants (1)
-
Joachim Kieferle