Perl 脚本用于获取特定目录并修改 xml 文件

Perl 脚本用于获取特定目录并修改 xml 文件

我编写了一个 perl 脚本来修改 xml 文件,但只对一个文件有效。我希望我的脚本能够获取 xml 文件夹并修改其中的 xml 文件。这样它应该对 xml 文件夹中的所有 xml 文件都运行。那么我该如何实现呢?

这是我的代码。

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);

答案1

实际上,您可以通过多种方式实现这一点.....只需尝试以下代码,如果有任何说明或错误,请告诉我。

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";

        }

}

相关内容