Welcome Guest ( Log In | Register )

Help | Search | Members | Calendar

Pages: (2) [1] 2   ( Go to first unread post )
вопрос по Perl-у
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
Berkut
Posted: Feb 19 2009, 18:11

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Народ... может кто знает как сделать такую штуку на перле ....
Я хочу скрипт , который будет читать с одного файла и записывать значения переменной в другой файл, но я что то не догнал как это сделать ...
Вот пример
CODE
#!usr/bin/perl -w

open (INDEX, "index.htm") or die "Cant open that fuckin file: $!\n";
while ($line=<INDEX>){
 if ($line=~ /http:/) {
 print $line;

}
}


только тут он просто тупо все выведет на экран, а как сделать так , что б он эту переменную ( в данном примере $line ), а точнее ее значения записывал бы в нужный мне файл.

Там наверное надо использовать open (SESAME ">>somefile") .
А как это сделать что-то не понял
 
       Top
Master of Puppets
Posted: Feb 19 2009, 18:13

Eye of the Vision

Group: Moderator
Member No.: 2067

Joined: August 29, 2006

переправь вывод скрипта в файл. вот так:
./your_scrupt.pl > your_file.txt

UPD: то есть, это скрипт так запускать нужно. в самом скрипте менять ничего не надо.

--------------------
Master of Puppets, I'm pulling your strings, twisting your mind and smashing your dreams!
⠠⠵
 
       Top
Berkut
Posted: Feb 19 2009, 18:19

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Посиб , понял .... а если я хочу что б несто такое сработало б под виндоус ? или просто через какой нить интерфейс обычным кликом или еще каким нить другим вызовом ?
 
       Top
Master of Puppets
Posted: Feb 19 2009, 18:22

Eye of the Vision

Group: Moderator
Member No.: 2067

Joined: August 29, 2006

ну, например, создаешь батник (bat-файл) такого типа:
CODE

@echo off
perl your_script.pl > your_file.txt
pause

ложишь в одну папку со скриптом и вместо скрипта этот батник запускаешь кликом. В конце он попросит любую клавишу нажать чтобы окошко закрыть, если хочешь чтоб сразу закрывался, последнюю строчку удали.


--------------------
Master of Puppets, I'm pulling your strings, twisting your mind and smashing your dreams!
⠠⠵
 
       Top
Berkut
Posted: Feb 19 2009, 18:25

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Оке, посибо большое , так и сделаю smile.gif
 
       Top
knightmare
Posted: Feb 20 2009, 08:23

Wise Dreamer

Group: Elite Member
Member No.: 1572

Joined: October 31, 2005

так вот вроде, должно работать... Вы сначала гуглите, а потом спрашиваете, или наоборот, или вообще не гуглите? А пробуете перед тем, как спросить и гуглить, или наоборот?
CODE

#!usr/bin/perl -w

open (INFILE, "index.htm") or die "Cant open that fuckin file for reading: $!\n";
open (OUTFILE, ">>out") or die "Cant open that fuckin file for writing: $!\n";
while ($line=<INDEX>){
if ($line=~ /http:/){
 print OUTFILE $line;
}
}
close(INFILE);
close(OUTFILE);


--------------------
армия - эта крута, армейский спецназ - эта ваще крута


Хочу трахнуть Nissan Skyline R34, и ездить на Alessandra Ambrosio
 
    Top
Berkut
Posted: Feb 22 2009, 18:17

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

в топку гугл )))
Так не работает ))) так я сам сначала сделал и потом только спросил тута )))
Но все равно спасибо )))
 
       Top
Berkut
Posted: Mar 20 2009, 15:31

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Народ....подскажите плиз. ... .
Вот такая вот дилемка .
Хочу написать на все том же перле такую фигулинку , которая будет работать с линуксом на уровне командной строки...т.е. :
А . получать команду из вне и посылать ее командной строке линуха.
Б . перехватывать результат ( либо ошибку ) в виде текстовой информации , которая выводиться на экран при работе с командной строкой линукса и передовать эту информацию куда либо ...в файл либо куда нить еще ...
Так вот .... подскажите плиз как это ( приблезительно хоть ) сделать.
Заранее благодарствую )))
 
       Top
Master of Puppets
Posted: Mar 20 2009, 15:56

Eye of the Vision

Group: Moderator
Member No.: 2067

Joined: August 29, 2006

QUOTE (In the immortal words of Berkut, since Mar 20 2009, 15:31)
Народ....подскажите плиз. ... .
Вот такая вот дилемка .
Хочу написать на все том же перле такую фигулинку , которая будет работать с линуксом на уровне командной строки...т.е. :
А . получать команду из вне и посылать ее командной строке линуха.
Б . перехватывать результат ( либо ошибку ) в виде текстовой информации , которая выводиться на экран при работе с командной строкой линукса и передовать эту информацию куда либо ...в файл либо куда нить еще ...
Так вот .... подскажите плиз как это ( приблезительно хоть ) сделать.
Заранее благодарствую )))

гугли в сторону оператора backticks (``)

--------------------
Master of Puppets, I'm pulling your strings, twisting your mind and smashing your dreams!
⠠⠵
 
       Top
Berkut
Posted: Mar 20 2009, 15:57

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

посибо!
Ну полюбому , если еще кто что может подсказать....плиз smile.gif
 
       Top
knightmare
Posted: Mar 21 2009, 02:13

Wise Dreamer

Group: Elite Member
Member No.: 1572

Joined: October 31, 2005

Параметры коммандной строки можно получить из массивов @_ / @ARGV (либо можно запускать перл с параметром -ws, и будут доступны простые методы, точнее удобные, проще некуда, либо использовать модуль Getopt для этого и т.д., как говорится, желаю, чтоб эти проблемы оказались вашими самыми сложными в разрешенииwink.gif ).

чтоб запустить другой процесс, читайте про:
exec()
system()
либо их комбинации с fork(), если нужно их фоновое выполнение.
главное помнить про уязвимости, фильтровать все, что влияет на запуск кода.

http://perldoc.perl.org/perlipc.html
http://perldoc.perl.org

>sh perldoc

--------------------
армия - эта крута, армейский спецназ - эта ваще крута


Хочу трахнуть Nissan Skyline R34, и ездить на Alessandra Ambrosio
 
    Top
Berkut
Posted: Mar 21 2009, 12:38

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Посибо smile.gif))
 
       Top
Berkut
Posted: Mar 23 2009, 10:53

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

А может у кого нить найдется документация на русском ?
 
       Top
Master of Puppets
Posted: Mar 23 2009, 11:42

Eye of the Vision

Group: Moderator
Member No.: 2067

Joined: August 29, 2006

QUOTE (In the immortal words of Berkut, since Mar 23 2009, 10:53)
А может у кого нить найдется документация на русском ?

поищи книжку Маслова по Перлу, очень хорошая весчь, правда стааарая smile.gif

--------------------
Master of Puppets, I'm pulling your strings, twisting your mind and smashing your dreams!
⠠⠵
 
       Top
Berkut
Posted: Apr 2 2009, 10:46

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Народ , знаю что задолбал , но все же, еще один вопрос нарос...
Возможно ли на перле написать скрипт , который будет делать постоянный пинг удаленного хоста , при этом в случаи если вдруг идет тайм аут он бы записывал в лог файл этот тайм аут , отмечая время ....
 
       Top
Master of Puppets
Posted: Apr 2 2009, 12:00

Eye of the Vision

Group: Moderator
Member No.: 2067

Joined: August 29, 2006

я полный ламер в перле, но тебе нужно что-то вроде этого
CODE

while(1 == 1)
{
$result = `ping имя_хоста -с1 | tail -1 | grep "Request timed out"`
if($result!='')
{
//пишешь в лог...
}
}


--------------------
Master of Puppets, I'm pulling your strings, twisting your mind and smashing your dreams!
⠠⠵
 
       Top
Berkut
Posted: Apr 2 2009, 12:59

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

хм.. я чего то не понял...
Как будет идти пинг ?
что значит вот эта строчка `ping имя_хоста -с1 | tail -1 | grep "Request timed out"`
 
       Top
Berkut
Posted: Apr 15 2009, 13:41

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

У меня есть один вопрос и если кто нить сможет , то помогите разобраться либо в логике , либо в самом написании.
Есть машина на которой стоит FreeBSD и установлен апачь и перл.
Раз в сутке необходима по сети копировать файлы с одних удаленных машин на другие ( машине в одной локальной сети с единым IP диапозоном ) .
Т.е. получается , что нужен скрипт , который будет тупо делать бекап одних папок ( по заранее указанным путям ) в другие папки ( тоже по заранее указанным и известным путям ) .
Кто нить может подсказать как это делать ? Либо дать ссылку на документацию , где будет показан пример подобной задачи .
 
       Top
vaheg
Posted: Apr 16 2009, 08:44

Incomer

Group: Member
Member No.: 3320

Joined: April 11, 2009

QUOTE (In the immortal words of Berkut, since Apr 15 2009, 13:41)
У меня есть один вопрос и если кто нить сможет , то помогите разобраться либо в логике , либо в самом написании.
Есть машина на которой стоит FreeBSD и установлен апачь и перл.
Раз в сутке необходима по сети копировать файлы с одних удаленных машин на другие ( машине в одной локальной сети с единым IP диапозоном ) .
Т.е. получается , что нужен скрипт , который будет тупо делать бекап одних папок ( по заранее указанным путям ) в другие папки ( тоже по заранее указанным и известным путям ) .
Кто нить может подсказать как это делать ? Либо дать ссылку на документацию , где будет показан пример подобной задачи .

можно через ftp просто, скачивать или аплодить (смотря с какого сервера)

вот пример
http://www.opennet.ru/openforum/vsluhforum...umID3/3296.html
 
     Top
Berkut
Posted: Apr 17 2009, 09:44

Challenger

Group: Member
Member No.: 458

Joined: October 29, 2003

Не , все работает в локальной сетке ....
причем еще и одну копию он должен делать на локальной машине...
просто есть один скрипт , и это фигулинка должна работать под управлением этого скриптика... т.е. выполнять бекап в определенных ситуациях, когда подребует основной скрипт.
 
       Top
20 replies since Feb 19 2009, 18:11 Track this topic | Email this topic | Print this topic
Pages: (2) [1] 2 
<< Back to Programming languages

 




Arminco Global Telecommunications