Perl初級教程 (5) 遍歷文件夾內指定擴展名文件,查找匹配關鍵字的輸出。

#!/usr/bin/perl -W
#
# File: find.pl
# License: GPL-2

use strict;
use warnings;
use File::Find;

 

#定義要匹配的關鍵字


my $str1="20090414095014";
my $str2="Report";

#定義鍵盤接收輸入,第一個爲文件夾路徑,第二個爲文件擴展名。

die "Usage: $0 <dir> <extion>\n" unless @ARGV == 2;
my $Dir = $ARGV[0] ;
my $Ext = $ARGV[1] ;

opendir(DH, "$Dir") or die "Can't open: $!\n" ;
 

my @list = grep {/$Ext$/ && -f "$Dir/$_" } readdir(DH) ;
closedir(DH) ;
chdir($Dir) or die "Can't cd dir: $!\n" ;

#遍歷文件夾,定義文件句柄。
foreach my $file (@list){
    open(FH, "$file") or die "Can't open: $!\n" ;
    while(<FH>){

# Perl 本身是大小寫區別的,而且對於關鍵字搜索是藉助於正則表達式來完成的。
  if(<FH> =~ /$str2/i){
    print "$file:\n" ; 
   }
    }
    print "\n";
    close(FH) ;
}
# 在CMD模式下調用時切記使用perl程序所在的全路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章