0

当我有一个包含大约 5000 张图像的文件夹并使用以下代码时:

my $path= "./foo/images"
my @files = File::Find::Rule->file()->name('*.jpg')->in($path);

我应该在我的数组中获得 5000 张图像。

但是是否有 perl 或 shell 函数(如tailandhead或任何其他方式)的等价物来获取最后 100 张图像?

4

2 回答 2

1

您可以使用数组 slice。这将返回第一个 5:

my @files = (File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];

这得到最后 5 个:

my @files = (reverse File::Find::Rule->file()->name('*.txt')->in($path))[0 .. 4];
于 2014-02-07T13:27:19.967 回答
0

刚刚意识到...... File::Find::Rule 完全混合了图像......所以我们需要在切片数组之前另外进行排序

所以最后我/我们必须使用以下内容:

对于前 5 个:

my @files = (sort File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];

最后5个:

my @files = (reverse sort File::Find::Rule->file()->name('*.jpg')->in($path))[0 .. 4];
于 2014-02-07T13:52:00.273 回答