代码:test.pl 'c:\usrdirctory' 'd:\out.txt'
两个参数分别为:你要遍历的目录路径;你要保存有用信息的文件路径。
如果不方便用命令行调用的话,就写死在下面的$dir,$dst后面。
例如 $dir = 'c:\usrdirctory'
#!/usr/bin/perl
my $dir = $ARGV[0]
my $dst = $ARGV[1]
$dst ||= "temp_log.txt"
if (!-d $dir) {
print "$dir is not a valid directory!\n"
exit(-1)
}
if (!opendir DIR , $dir){
print "cannot open dir, $dir\n"
exit(-1)
}
else{
foreach (readdir DIR) {
if ($_ =~ /\.log$/) {
print $_,"\n"
$out .= "$_\n"
}
}
closedir DIR
}
if (!open FILE,">$dst"){
print "open file,$dst failed!\n"
exit(-1)
}
else{
print FILE $out
close FILE
}
print "Done!\n"
exit(0)
不知道你这里读取具体指什么,我就把文件名打印出来,把文件内容打印出来吧。(程序指定两个参数,第一个参数是指定的文件夹名,每二个参数是指定的扩展名。)#!/usr/bin/perl
use strict
use warnings
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"
print "$file:\n"
while(<FH>){
}
print "\n"
close(FH)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)