|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ruslan Sulemanov 2:4635/1024.27 24 Apr 2003 17:24:53 To : All Subject : удаление строки по шаблону --------------------------------------------------------------------------------
Как yдалить строкy из файла по заданомy шаблонy? (использyюя
один файл)
вот есть рабочий код, но он медленно работает если в файле
больше 35000 строк, что-то около двyх сек. yдаляет...
====================================
open(FU,"+< $path") || die "$!\n";
flock(FU,2);
undef @mster;
while(<FU>)
{
chomp;
$_=~s/^\s*//;
$_=~s/\s*$//;
if($_=~m/^($шаблон)$/i)
{
$tls=tell(FU);
$szs=length($_);
while(<FU>)
{
push(@mster,$_);
}
last;
}
}
seek(FU,0,0);
while(<FU>)
{
chomp;
if($_=~m/^($шаблон)$/i)
{
seek(FU,$tls-($szs+1),0);
truncate(FU,$tls-($szs+1));
last;
}
}
if(defined(@mster))
{
for (@mster)
{
print FU "$_\n";
}
}
flock(FU,8);
close(FU);
Заранее благодарен.
С Уважением, Руслан.
--- GoldED+/FreeBSD 4.8-STABLE
* Origin: *JEET:* support@icu.net.ua *:UA* (2:4635/1024.27)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/45933ea81ff6.html, оценка из 5, голосов 10
|