Script Perl para buscar um diretório específico e modificar o arquivo xml

0

Eu escrevi um script perl para modificar o arquivo xml que está funcionando bem para apenas um arquivo. Eu quero que meu script busque a pasta xml e modifique o arquivo xml dentro dela. Assim, ele deve ser executado para todos os arquivos xml nas pastas xml. Então, como posso alcançá-lo?

Aqui está o meu código.

open(FILE, "/home/AP/abc.xml") || die "File not found";
my @lines = <FILE>;
close(FILE);

my @newlines;
foreach(@lines) {
   $_ =~ s/<abc>/$&\n<!--a-->\n<!--b-->\n<!--c-->/g ;
                     s/hai/bye/g;
                     s/---/--/g;
                     s/***/**/g;

   push(@newlines,$_);
}
open(FILE, "/home/AP/abc.xml") || die "File not found";
print FILE  @newlines;
close(FILE);
    
por user1345837 27.11.2013 / 08:33

1 resposta

0

Na verdade, você pode conseguir isso de várias maneiras ..... apenas tente o seguinte código e deixe-me saber se há algum esclarecimento ou algum erro.

sub fileprocessor{
    (my $file_name)=@_;

    my $tmp_filename="/home/AP/$file_name";
open(FILE, "$tmp_filename") || die "File not found";
my @lines = <FILE>;
close(FILE);

my @newlines;
foreach(@lines) {
   $_ =~ s/<abc>/$&\n<!--a-->\n<!--b-->\n<!--c-->/g ;
                     s/hai/bye/g;
                     s/---/--/g;
                     s/***/**/g;

   push(@newlines,$_);
}
open(FILE, "$tmp_filename") || die "File not found";
print FILE  @newlines;
close(FILE);

}


foreach(<*>){

     if(-f $_){
                fileprocessor($_);
        }else{

            print "directory\n";

        }

}
    
por 27.11.2013 / 10:25

Tags