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