perl - grep 目录中的文件名

标签 perl grep

我有一个名为 - "Requests" 的目录,其中包含以下文件

 Transition-Request-201405061735.html
 Requisition-Request-201405061735.html
 Transition-Request-201405061735.txt
 Transition-Request-201405061735.csv
 output.txt

我只需要过滤 Transition-Request-201405061735.txt

到目前为止我想到的代码如下

 #!/usr/bin/perl
 use strict;
 use warnings;

   my $Request = "/tmp/Requests";
   opendir(DIR, $Request) or die $!; 
   my @inputfiles = grep { /ion-Request-/ && \/\.txt$/ && -f "$Request/$_"  } readdir(DIR);
   print "@inputfiles\n";

输出如下

Transition-Request-201405061735.html Transition-Request-201405061735.csv Transition-Request-201405061735.txt Requisition-Request-201405061735.html

我正在寻求专家建议,以使用有效的 grep 语句来仅过滤我想要的文件 - Transition-Request-201405061735.txt

最佳答案

这是由于转义字符造成的:

  \/\.txt$/
# ^ here

只需删除它:

.... /ion-Request-/ && /\.txt$/ ...

关于perl - grep 目录中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996291/

相关文章:

perl - 将 Perl 的映射与自定义函数一起使用

regex - 如何从 Perl 数组中选择某些元素?

perl - 输出开始打印后使用 requires 有什么问题吗?

shell - 如何使 grep 仅在整行匹配时才匹配?

linux - 查找文件中重复的名称

子里面的 Perl 子

perl - 如何使用 DEBUG_LEAKING_SCALARS 编译 perl?

bash - shell编程中的命令 "grep | cut"

bash - 使用 grep 查找版本号

linux - 根据格式从文件中批量提取行