GREP:排除具有特定模式的文件名,同时包含特定的文件扩展名

杰夫

我刚刚开始学习 Perl,在使用grep函数时遇到了困难具体来说,我想排除名称中包含数字 0-9 的文件名,但只输出那些扩展名为 .png 的文件。我已经想出了如何排除带有数字的文件名,但我需要有关如何仅包含扩展名为 .png 的文件的帮助。

这是我的 Perl 脚本:

#!/usr/bin/perl
my $dir = '/Users/jdm/Desktop/xampp/htdocs/cnc/images/plants';
opendir(DIR, $dir);
@files = grep (!/[1-9]/,readdir(DIR));
closedir(DIR);

foreach $file (@files) {
   print "$file\n";
}

这是输出:

Packera_glabellus.png
Leucojum_aestivum.png
Reynoutria_japonica.png
Agalinis_purpurea.png
.DS_Store

如您所见,“.DS_Store”没有 .png 扩展名。请建议一个只输出带有 .png 扩展名的未编号文件名grep表达式。谢谢。

如果要排除名称中包含任何数字的文件,请将该grep修改为:

@files = grep (/^\D*\.png\z/,readdir(DIR));

这仅返回以任何(或零)非数字字符开头且后跟.png结尾的文件名。

如果要排除名称中仅包含 1-9 的文件,请更改正则表达式:

@files = grep (/^[^1-9]*\.png\z/,readdir(DIR));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 grep 移动具有特定扩展名的文件

Bash 查找具有特定扩展名的文件,但排除文件名中具有特定关键字的文件

显示所有具有特定扩展名的文件的文件名

具有特定字符串或特定扩展名的文件名的 for 循环

GREP:排除特定目录中的文件扩展名

如何将扩展名附加到具有特定文件名格式的文件

具有特定扩展名的文件名的文件路径

更改所有包含特定字符串的文件名的扩展名

用户如何输入具有特定扩展名的文件名?

匹配所有文件(具有特定扩展名的文件除外)的Bash匹配,适用于包含点字符的文件名

复制所有具有特定扩展名的文件,同时维护目录树

如何查找具有特定扩展名的文件,而仅排除当前目录中的某些名称?

如何搜索与特定模式匹配的文件名的特定扩展名

在cmd中如何列出包含具有特定扩展名的文件的文件夹?

使用rsync复制除具有特定扩展名的某些文件名以外的所有文件

获取具有特定扩展名的所有文件

匹配具有特定扩展名的所有文件名(特定文件名正则表达式除外)

如何仅在具有特定文件名的文件中使用 grep 模式?

如何在具有特定扩展名的文件中递归grep?

从多个目录复制具有特定扩展名的文件

打印具有特定扩展名的文件

查找具有特定扩展名的文件

Bash脚本检查具有特定扩展名的文件

递归查找具有特定扩展名的文件

删除具有特定扩展名的文件的脚本问题

循环浏览具有特定扩展名的文件

Gradle-删除具有特定扩展名的文件

如何附加到具有特定扩展名的文件

使用Chokidar监视具有特定扩展名的文件