Надо обработать 160кк строк

Статус
В этой теме нельзя размещать новые ответы.

bob

Профессор
Регистрация
30 Авг 2011
Сообщения
155
Реакции
45
Надо обработать 160кк строк вида:
т.е. убрать все что после первого пробела
у меня есть регулярка, но на таких объемах она не подходит
помогите плиз
 

recasher2k12

Гуру форума
Регистрация
19 Фев 2012
Сообщения
156
Реакции
80
Регулярка не нужна. По-экономьте память. Также необходимо использовать бинарно-безопасное чтение. и если запускать не через CLI, а браузер, возможно, придется увеличить максимальное время работы скрипта.
PHP:
<?php
$readhandle = @fopen("/tmp/inputfile.txt", "r");
$writehandle = @fopen("/tmp/outputfile.txt", "w");
if ($readhandle && $writehandle) {
    while (($buffer = fgets($readhandle)) !== false) {
        //echo $buffer;
        $writeBuffer = substr($buffer, 0, strpos($buffer, ' ')). "\r\n";
        fwrite($writehandle, $writeBuffer);
    }
    if (!feof($readhandle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($readhandle);
    fclose($writehandle);
}
?>

Исправлено. на 6й строке в конце
PHP:
 . "\r\n"
 

nnmkayf

Гуру форума
Регистрация
25 Июл 2007
Сообщения
153
Реакции
99
Если у вас есть юникс, а судя по вопросу есть, можно значительно проще.

в командной строке
cut -f1 -d" " a.txt
где a.txt - файлик с DNS записями
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху