Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl在文件夹和子文件夹中搜索特定的文件扩展名_Perl_Extract_Subdirectory - Fatal编程技术网

Perl在文件夹和子文件夹中搜索特定的文件扩展名

Perl在文件夹和子文件夹中搜索特定的文件扩展名,perl,extract,subdirectory,Perl,Extract,Subdirectory,我有一个文件夹,其中有1500多个文件分散在不同的子文件夹中,扩展名为.fna。我想知道在Perl中是否有一种简单的方法来提取所有这些文件并将它们存储在不同的位置?您使用的是哪个操作系统?如果是Windows,我认为简单的xcopy命令会容易得多。打开控制台窗口并键入“xcopy/?”以获取有关此命令的信息。它应该很简单,比如: xcopy directory1/*.fna directory2/s您正在使用哪个操作系统?如果是Windows,我认为简单的xcopy命令会容易得多。打开控制台窗口

我有一个文件夹,其中有1500多个文件分散在不同的子文件夹中,扩展名为
.fna
。我想知道在Perl中是否有一种简单的方法来提取所有这些文件并将它们存储在不同的位置?

您使用的是哪个操作系统?如果是Windows,我认为简单的xcopy命令会容易得多。打开控制台窗口并键入“xcopy/?”以获取有关此命令的信息。它应该很简单,比如:


xcopy directory1/*.fna directory2/s

您正在使用哪个操作系统?如果是Windows,我认为简单的xcopy命令会容易得多。打开控制台窗口并键入“xcopy/?”以获取有关此命令的信息。它应该很简单,比如:


xcopy directory1/*.fna directory2/s

如果没有更多信息,您不需要perl脚本来完成像这样简单的事情

这是一个尼克斯一号班机

find /source/dir -name "*.fna" -exec mv -t /target/dir '{}' \+ -print

如果没有更多的信息,就不需要perl脚本来完成像这样简单的事情

这是一个尼克斯一号班机

find /source/dir -name "*.fna" -exec mv -t /target/dir '{}' \+ -print

由于到处都推荐使用File::Find,所以我要补充的是,还有其他选项,有时更好,比如或Path::Class遍历函数

由于到处都推荐使用File::Find,所以我要补充的是,还有其他选项,有时更好,比如或Path::Class traverse函数

很抱歉反应太晚。我去开会了。这是我的代码,到目前为止似乎运行良好

use strict;
use warnings;
use Cwd;
use FileHandle;
open my $out, ">>results7.txt" or die;
my $parent = "/home/denis/Denis_data/Ordered species";
my ($par_dir, $sub_dir); 
opendir($par_dir, $parent); 
while (my $sub_folders = readdir($par_dir)) {
next if ($sub_folders =~ /^..?$/);  # skip . and ..
my $path = $parent . '/' . $sub_folders;
#my $path = $sub_folders;
next unless (-d $path);   # skip anything that isn't a directory
chdir($path) or die;
system 'perl batch_hmm.pl';
print $out $path."\n";
#chdir('..') or die;
#closedir($sub_dir);
}
closedir($par_dir);

我还将尝试File::Finder选项。上面这张看起来很乱。

很抱歉反应太晚。我去开会了。这是我的代码,到目前为止似乎运行良好

use strict;
use warnings;
use Cwd;
use FileHandle;
open my $out, ">>results7.txt" or die;
my $parent = "/home/denis/Denis_data/Ordered species";
my ($par_dir, $sub_dir); 
opendir($par_dir, $parent); 
while (my $sub_folders = readdir($par_dir)) {
next if ($sub_folders =~ /^..?$/);  # skip . and ..
my $path = $parent . '/' . $sub_folders;
#my $path = $sub_folders;
next unless (-d $path);   # skip anything that isn't a directory
chdir($path) or die;
system 'perl batch_hmm.pl';
print $out $path."\n";
#chdir('..') or die;
#closedir($sub_dir);
}
closedir($par_dir);

我还将尝试File::Finder选项。上面的一个看起来很乱。

欢迎使用堆栈溢出。请尽快阅读这一页。使用核心模块有什么问题?请显示您的代码。欢迎使用堆栈溢出。请尽快阅读这一页。使用核心模块有什么问题?请显示您的代码。此代码应添加到问题并正确缩进(然后删除此答案)。此代码应添加到问题并正确缩进(然后删除此答案)。