Landler: Algorithmus Suche csv-datei

Beitrag lesen

Hallo,
habe hier gerade ein kleines Problem. Es liegen mir paar hundert Gigabyte Daten vor, die in .txt-Files abgelegt sind. Im Prinzip sind die Dateien so organisiert:

blabla 234 blublub 893xxxzos &3asi-343 123828_2321
blabla 234 blublub 845xxxzos &3asi-343 123828_2321
blabla 234 blublub 855xxxzos &3asi-343 123828_2321
blabla 244 blublub 893xxxzos &3asi-343 123828_2321
blabla 244 blublub 845xxxzos &3asi-343 123828_2321
blabla 244 blublub 855xxxzos &3asi-343 123828_2321

Pro Datei handelt es sich vielleicht um 200.000 - 1.000.000 Zeilen

das ganze wird mit fgetcsv geparst:

  
while ( ($line = fgetcsv ($handle, 1000, "\n")) !== FALSE ){  
  // do some stuff with each line  
}  
  

allerdings benötige ich immer nur Zeilen, die den String "855xxxzos" enthalten. Diese Zeile kommt in echt so alle 40-80 Zeilen vor. Dafür nutze ich dann mal das continue-Statement, um gleich aus der weiteren Verarbeitung rauszukommen.

  
while ( ($line = fgetcsv ($handle, 1000, "\n")) !== FALSE ){  
  // do some stuff with each line  
  if(strpos($line, "855xxxzos") === false)) continue;  
}  
  

Das ganze dauert bei ein paar hundert Gigabyte natürlich ne Weile. Wie könnte man das performanter machen?

Könnte man nach gefundener Zeile pauschal mal ein paar Zeilen überspringen?
Ich habe irgendwie keine Idee... oder bleibt nur das komplette Durchforsten Zeile für Zeile?

über eine Idee würde ich mich freuen.
danke