URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 8687
[ Назад ]

Исходное сообщение
"Помогите со скриптом !!!"

Отправлено McFly , 21-Сен-01 17:00 
Который день не могу проблему решить: нужно в файле с данными типа:
010918 121321546
010919 466655
010920 546233
010921 6546546
Переодически удалять строку начало которой совпадает с $data, первая часть строки - это год, мес. и день. Т.е. если есть такая строка она удаляется, а на ее место записывается другая.
Пример реализации:
open(traf,"</path/to/file) or die $!;
@a=grep(!/$data/,<traf>);
close(traf);
open(traf,">/path/to/file) or die $!;
printf traf @a;
close(traf);
Не работает почему-то, все что со второй строки в файле удаляет :-(
Может есть другие варианты ?

Содержание

Сообщения в этом обсуждении
"RE: Помогите со скриптом !!!"
Отправлено Vasja , 21-Сен-01 18:01 
Детский сад какой-то !!!
man sh
man awk
man sed
man perl
....

КНИЖКИ ЧИТАЙ! Две недели дурацкие вопрсы задаешь.
Давно написАл бы.


"RE: Помогите со скриптом !!!"
Отправлено mrAngel , 21-Сен-01 18:05 
moget po drugomu?
open(traf,"</path/to/file) or die $!;
@a=<traf>;
close(traf);
open(traf,">/path/to/file) or die $!;
while <traf>
{
print traf if !/$data/;
}
close(traf);
???

"RE: Помогите со скриптом !!!"
Отправлено mrAngel , 21-Сен-01 18:09 
tfu blin, smorozil toge...
tama v seredine:
"while <traf>" zameni na "while $_=@a"
vrode tak


"RE: Помогите со скриптом !!!"
Отправлено mrAngel , 21-Сен-01 18:17 
koroche v itoge:

open(traf,"</path/to/file") or die $!;
@a=<traf>;
close(traf);
open(traf,">/path/to/file") or die $!;
while ($_=$a[$i])
{
$i++;
print traf if !/$data/;
}
close(traf);


"RE: Помогите со скриптом !!!"
Отправлено nubi , 22-Сен-01 17:06 
Вы что, обалдели, ему ПЕРИОДИЧЕСКИ:)

open(FILE,"|tail -f /path/ti/file") or die;
while(<FILE>){ unless m/date/ print $_;}

nohup Этот_Скрипт &

перл все сам закроет.


"RE: Помогите со скриптом !!!"
Отправлено nubi , 22-Сен-01 17:08 
Я на всякий извенюсь, "обалдели" касается файлов размером мег в 300-800.