Русскоязычное Linux-сообщество's Journal
 
[Most Recent Entries] [Calendar View]

Friday, September 13th, 2013

    Time Event
    10:22a
    Все мучаюсь со скриптингом
    Здравствуйте! Мне понадобилось написать программу, которая бы заменяла кусок файла, ограниченный словами "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;
    }

    << Previous Day 2013/09/13
    [Calendar]
    Next Day >>

Русскоязычное Linux-сообщество   About LJ.Rossia.org