如何使用perl遍历一个目录下的所有文件

如何使用perl遍历一个目录下的所有文件,第1张

前提,你windows下装了perl环境。 代码:test.pl 'c:\usrdirctory' 'd:\out.txt' 两个参数分别为:你要遍历的目录路径;你要保存有用信息的文件路径。 如果不方便用命令行调用的话,就写死在下面的$dir,$dst后面。 例如 $dir = 'c:\usrdirctory'...

前提,你windows下装了perl环境。

代码: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

}

print "\n"

close(FH)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7980347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存