使用grep with perl查找文件

时间:2013-09-10 16:10:57

标签: regex perl grep

我是perl的新手,我目前仍然坚持这个问题。

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

    这样的东西
    grep -rl "keyword" /.; 
    #where does the filenames get stored? let's say in $_?
    #foreach valid file, do something
    
    从我发现的一些网站上看,但似乎没有用?请帮助,谢谢!!

2 个答案:

答案 0 :(得分:2)

怎么样

 ls *keyword*

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

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

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

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

 @files = grep /(fun[kK]y_)keyword?/ glob("*");

答案 1 :(得分:1)

perl -E 'say for <*keyword*>'