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

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

Отправлено Маруся , 27-Ноя-13 12:35 
Всем низкий поклон..
В интернете решения не нашел, поэтому спрашивею здесь.
Нужен скрипт на perl который будет искать в файле "day=1" и "urok=1". И будет заменять на "понедельник" и "первый урок".

т.е по такому алгоритму:
----------------------
day=1 на понедельник
day=2 на вторник
day=3 на среду
day=4 на четверг
day=5 на пятницу
day=6 на субботу
-----------------------
urok=1 на первый урок
urok=2 на второй урок
urok=3 на третий урок
urok=4 на четвертый урок
urok=5 на пятый урок
urok=6 на шестой урок
-----------------------

Спасайте пожалуйста!


Содержание

Сообщения в этом обсуждении
"Помогите написать скрипт на perl"
Отправлено Andrey Mitrofanov , 27-Ноя-13 12:42 
> Нужен скрипт на perl который будет искать в файле "day=1" и "urok=1".

Почему на перле-то? Пуля — дура, препод — молодец?


"Помогите написать скрипт на perl"
Отправлено Маруся , 27-Ноя-13 12:50 
> Почему на перле-то? Пуля — дура, препод — молодец?

На JavaScript я уже сделал.. теперь нужно на perl. С ним всё сложнее.. Вот и спрашиваю у вас.


"Помогите написать скрипт на perl"
Отправлено Andrey Mitrofanov , 27-Ноя-13 13:21 
> На JavaScript я уже сделал.. теперь нужно на perl. С ним всё сложнее..

Но _зачем_?? Собеседование что ли, если не препод?

> Вот и спрашиваю у вас.

Да, я-то уже почти сделал, только надо man perl немного почитать.

Но мне интересно -- на кой оно.


"Помогите написать скрипт на perl"
Отправлено Маруся , 27-Ноя-13 13:35 
> Да, я-то уже почти сделал, только надо man perl немного почитать.
> Но мне интересно -- на кой оно.

Да ты прав был :) Меня препод тресёт по чёрному. Там для проэкта нужно, для вытаскивания замен с сайта.



"Помогите написать скрипт на perl"
Отправлено Andrey Mitrofanov , 27-Ноя-13 13:41 
>> Да, я-то уже почти сделал, только надо man perl немного почитать.
>> Но мне интересно -- на кой оно.
> Да ты прав был :) Меня препод тресёт по чёрному. Там для
> проэкта нужно, для вытаскивания замен с сайта.

$ dat() {
>[оверквотинг удален]
> day=6 на субботу
> -----------------------
> urok=1 на первый урок
> urok=2 на второй урок
> urok=3 на третий урок
> urok=4 на четвертый урок
> urok=5 на пятый урок
> urok=6 на шестой урок
> SS
> }

$ dat |sed -n 's/ на /,/p'|awk -F, '{printf"%ss/%s/%s/g",(x++?";":""),$1,$2}';echo
s/day=1/понедельник/g;s/day=2/вторник/g;s/day=3/среду/g;s/day=4/четверг/g;s/day=5/пятницу/g;s/day=6/субботу/g;s/urok=1/первый урок/g;s/urok=2/второй урок/g;s/urok=3/третий урок/g;s/urok=4/четвертый урок/g;s/urok=5/пятый урок/g;s/urok=6/шестой урок/g
abm@novy:~$ _

Не, не буду man perl читать. Наверное, добавить perl -e '', но уже B)) [снова] не интересно.


"Помогите написать скрипт на perl"
Отправлено михалыч , 27-Ноя-13 14:15 
>[оверквотинг удален]
>> urok=6 на шестой урок
>> SS
>> }
> $ dat |sed -n 's/ на /,/p'|awk -F, '{printf"%ss/%s/%s/g",(x++?";":""),$1,$2}';echo
> s/day=1/понедельник/g;s/day=2/вторник/g;s/day=3/среду/g;s/day=4/четверг/g;s/day=5/пятницу/g;s/day=6/субботу/g;s/urok=1/первый
> урок/g;s/urok=2/второй урок/g;s/urok=3/третий урок/g;s/urok=4/четвертый урок/g;s/urok=5/пятый
> урок/g;s/urok=6/шестой урок/g
> abm@novy:~$ _
> Не, не буду man perl читать. Наверное, добавить perl -e '', но
> уже B)) [снова] не интересно.

Да, ладно!
Ну сделал человек на JavaScript. Ну пусть у него ещё на perl будет.
Что нам, жалко что-ли?! ))

#!/usr/bin/perl

use strict;
use warnings;

my $file = "/path/to/file";

open FH, $file;

while ( <FH> ) {

    s/day=1/понедельник/;
    s/day=2/вторник/;
    s/day=3/среда/;
    s/day=4/четверг/;
    s/day=5/пятница/;
    s/day=6/суббота/;

    s/urok=1/первый урок/;
    s/urok=2/второй урок/;
    s/urok=3/третий урок/;
    s/urok=4/четвертый урок/;
    s/urok=5/пятый урок/;
    s/urok=6/шестой урок/;

    print;
}

close FH;


"Помогите написать скрипт на perl"
Отправлено Аноним , 27-Ноя-13 14:33 
> Да, ладно!
> Ну сделал человек на JavaScript. Ну пусть у него ещё на perl
> будет.
> Что нам, жалко что-ли?! ))

#!/usr/bin/perl 

use strict;
use warnings;

my $file = "/path/to/file";

my @days = qw/понедельник вторник cреда четверг пятница суббота/;
my @nums = qw/первый второй третий четвертый пятый шестой/;

open FH, $file;

while ( <FH> ) {

     s/day=(\d)/$days[$1-1]/g;
     s/urok=(\d)/$nums[$1-1] урок/g;

     print;
}

close FH;

Ы?


"Помогите написать скрипт на perl"
Отправлено михалыч , 27-Ноя-13 14:43 
> Ы?

Уx, типа обошёл на вираже..))
А я тогда сострою километровый однострочник, вот! ))

perl -pe 's/day=1/понедельник/;s/day=2/вторник/;s/day=3/среда/;s/day=4/четверг/;s/day=5/пятница/;s/day=6/суббота/;s/urok=1/первый урок/;s/urok=2/второй урок/;s/urok=3/третий урок/;s/urok=4/четвертый урок/;s/urok=5/пятый урок/;s/urok=6/шестой урок/;' /path/to/file