Depinde majoritatea folosesc paginarea memoriei, aloca o parte din fisier in care navigezi si nu incarca tot fisierul, ce nu e folosit se dezaloca, pe parcurs ce navigezi se aloca si se dezaloca.
1 Like
Pentru procesare foloseste un utilitar gen sed https://www.digitalocean.com/community/tutorials/the-basics-of-using-the-sed-stream-editor-to-manipulate-text-in-linux
O alta varianta ar fi sa faci un mic programel care sa citeasca fisierul respectiv, singurul lucrul la care trebuie sa fii atent e sa faci procesarea linie cu linie ceva de genul:
Asa poti face schimbari pe linie cum vrei, poate mai complexe decat permite un stream editor (exemplu stocarea unui state si schimbarea functie de anumit conditii/variabile).
1 Like
$block =1024*1024;//1MB or counld be any higher than HDD block_size*2
if( $fh = fopen("file.txt", "r") ){
$left='';
while (!feof($fh)) {// read the file
$temp = fread($fh, $block);
$fgetslines = explode("\n",$temp);
$lines[0]=$left.$lines[0];
if(!feof($fh) )$left = array_pop($lines);
foreach($lines as $k => $line){
//do smth with $line
}
}
}
fclose($fh);
De pe linkul stack overflow.
Tipul zice ca a testat pe fisiere foarte mari(100gb)
de ce nu faceti in C