我只想匹配主目录和子目录名称,两个名称是否相等,子目录和主目录名称应与文件名匹配。任何人都可以使用Perl脚本帮助我。
例如:
Main-Directory :XXX
Sub Directory :XXX
File name: XXX
Ans应该是"所有名字都相同"
这是我尝试过的:
#!perl
use Cwd qw(abs_path);
opendir (DIR,'.');
my @folder = readdir(DIR);
foreach my $f (@folder)
{
next if ($f =~ /\./);
print "$f\n";
my $path = abs_path($0);
opendir (DIR,'$path');
my @subfolder = readdir(DIR);
foreach my $sf (@subfolder)
{
next if ($sf =~ /\./);
print "$sf\n";
}
}
答案 0 :(得分:0)
use strict;
use File::Find;
sub wanted {
return unless (-f $_);
my @path_element=split('/', $File::Find::name);
print if ($path_element[-1] eq $path_element[-2] && $path_element[-1] eq $path_element[-3]);
}
find(\&wanted,".");
如何运作
找到运行子"想要"在树中的每个文件上。 如果文件是类型" f" (即正常的非目录文件)然后它检查文件,它的目录和目录所在的目录是否具有相同的名称。如果是这种情况,则打印文件名
这并没有准确地给出你所要求的输出,但改变它是非常简单的
你可能需要改变"分裂"在非unix系统上使用不同的路径分隔符
希望这会有所帮助