Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Русскоязычное Linux-сообщество ([info]lj_ru_linux)
@ 2013-09-13 10:22:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Все мучаюсь со скриптингом
Здравствуйте! Мне понадобилось написать программу, которая бы заменяла кусок файла, ограниченный словами "BEGIN" и "END" - другим файлом. Причем не просто, а каждая строка должна быть со смайликом в начале. sed не дает заменять много строк, на bash как-то сложно, awk я не знаю, попробовала Perl (см. под катом). Но как-то громоздко, никто не подскажет более компактное решение?

sub zamenit
{
my ($in, $replace, $out) = @_;

open ( IN , $in ) or die "%Error: $! $in\n" ;
open ( OUT , ">$out" ) or die "%Error: $! $out\n" ;

while (<IN>)
{
last if /BEGIN/;
print OUT $_;
}

open (REPLACE, $replace) or die "%Error: $! $replace\n";

print OUT ":-) $_" while <REPLACE>;

close REPLACE;

while (<IN>)
{
last if /END/;
}

print OUT $_ while <IN>;

close IN;
close OUT;
}


(Читать комментарии) (Добавить комментарий)