我正在编写一个脚本,它将读取文件并根据文件内容我必须重命名文件。
我面临的问题:
第一个我无法读取子目录中的文件。第二我试图重命名文件但发生错误。
这是我的代码:
Folder Structur :
Logs
/ / / \
a b c d
/ \ \
e file file
其中 a,b,c,d,e 是 dir File,File 是 txt 文件
#!/usr/bin/perl
use strict;
use warnings;
use File::Copy::Recursive;
use Cwd;
my $file;
my (@FILES,@File_01);
my ($dir_01,$dir_02);
my $new_file="Kernel.txt";
chdir('C:\\abd\\efg');
$dir_01 = getcwd;
opendir(DIR_01, $dir_01);
@FILES=readdir(DIR_01);
close(DIR_01);
foreach $dir_02 (@FILES)
{
opendir (DIR_02, "$dir_01"."/"."$dir_02") ;
@File_01=readdir(DIR_02);
close(DIR_02);
foreach $file (@File_01)
{
open(FH,"<","$dir_01/$dir_02/$file") or die "can not open the file $!\n";
while(my $lines = <FH>)
{
if($lines=~ m/Linux kernel Version/i || $lines=~ m/USB_STATE=DISCONNECTED/gi)
{
#print "\t$lines\n\n";
rename($file,$new_file) or die "can not change the name";
}
}
}
}