0

我是 perl 的新手,我目前被困在这个问题上。

  1. 我在一个目录中有多个文件
  2. 我想检查他们的名字,看看文件名是否匹配某个关键字(不是整个文件名)。所以总而言之,我想获取所有具有特定关键字的某些文件,然后处理它们。

我正在尝试类似的东西

grep -rl "keyword" /.; 
#where does the filenames get stored? let's say in $_?
#foreach valid file, do something

从我找到的某个网站,但它似乎不起作用?请帮忙,谢谢!!

4

2 回答 2

2

怎么样

 ls *keyword*

如果您尝试在 perl 中执行此操作

 @files = glob("*keyword*");
 for $file (@files)
 {
   print "$file\n";
 }

注意,grep在perl中是一个核心函数,但它与正则表达式无关。它更像是 SQL where;它通过对每个元素应用一个函数(可能是也可能不是正则表达式)将数组过滤为子数组。

如果 glob 表达式不够好,你可以这样做

 @files = grep /(fun[kK]y_)keyword?/ glob("*");
于 2013-09-10T16:18:39.893 回答
1
perl -E 'say for <*keyword*>'
于 2013-09-10T16:22:09.837 回答