rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Perl

perl批量处理文件

问题:
我想用perl批量处理一批序列文件,就是每个序列单独一个文件,大概一百多个文件,想写个程序,把所有文件批量打开,做处理,然后再关上,改原文件或者生成个新文件都可以。 回答:可以用opendir函数哦。

例子:
#!/usr/bin/perl -w

$dirname = "/tmp";         #指定一个目录

opendir ( DIR, $dirname ) || die "Error in opening dir $dirname\n";
while( ($filename = readdir(DIR))){
print("$filename\n");       #循环输出该目录下的文件。
### do something ### closedir(DIR);

上面是循环拿到该目录下的文件。 这样就能循环对文件进行处理了,具体打开某个文件更改后,保存文件这些我就不。

根据上面这个回答,我写了一个实际应用最简单的例子,就是把每个文件复制一次:
#!/usr/bin/perl
use warnings;
use strict; my (%h, $filename);
my $dirname="/home/liuguiyou/lane6_7/ex/"; opendir (DIR, $dirname)|| die "Error in opening dir $dirname\n"; while (($filename=readdir(DIR))){          open (FILE, "/home/liuguiyou/lane6_7/ex/".$filename)|| die "can not open the file $filename\n";
         open (OUT, ">/home/liuguiyou/lane6_7/ex/$filename.bak")|| die "can not open the $filename.bak\n";            while (<FILE>){
                  print  OUT "$_"; }
} 参考资料:http://yunbio.com/35
顶一下
(0)
踩一下
(0)