|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Renat Araslanow 2:5011/119.1 25 Apr 2003 01:05:30 To : Ruslan Sulemanov Subject : удаление строки по шаблону -------------------------------------------------------------------------------- Однажды 24 Apr 03 17:24, Ruslan Sulemanov писал All: RS> Как yдалить строкy из файла по заданомy шаблонy? (использyюя RS> один файл) RS> вот есть рабочий код, но он медленно работает если в файле RS> больше 35000 строк, что-то около двyх сек. yдаляет... фууу какая гадость (это я про твой код) RS> ==================================== RS> open(FU,"+< $path") || die "$!\n"; RS> flock(FU,2); RS> undef @mster; RS> while(<FU>) RS> { last if($_=~m/^\s*($шаблон)\s*$/i) } $tls=tell FU; RS> $szs=length($_); undef $/; $rest = <FU>; seek( FU, $tls-($szs + $lenght_of_input_rec_sep), SEEK_SET); binmode FU; print FU $rest; #flock, афаир, снимается после закрытия файла close FU; И ФСЁ! --- [Преждевременная оптимизация -- корень всех зол Д. Кнут] * Origin: Чайник с программным управлениемЪ (2:5011/119.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/32783ea839c4.html, оценка из 5, голосов 10
|