• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Perl按行分割文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

将一个文件按照行数,均等的分割成多个小文件,例如,一个550行的文件,分割为每个文件有100行,则将分割为6个小文件

运行结果


参考代码(split_file.pl)

#!/usr/bin/perl
#usage way: split_file.pl test

open(FILE,$ARGV[0]) or die ("Error: cannot open file $ARGV[0].\n");
@lst_line = <FILE>;

my $dir_num = &splitfile(@lst_line);


#print "$dir_num\n";

exit;
################################################################


################################################################
sub splitfile{
    my (@input_line) = @_;
    
    my $everyfule_num = 80;   #Set partition lines
    my $line_num = @input_line;
    my $split_num  = $line_num/$everyfule_num;
    
    unlink "temp_lst";
    open(TEMPA, ">> temp_lst") || die ("Could not open file temp_lst! \n");

    my $sq_num = 0;
    foreach $line (@input_line){
        $line_index ++;

        printf TEMPA ("$line");

        if($line_index%$everyfule_num == 0){
            $sq_num = $line_index/$everyfule_num;
            my $lst_name = "test_"."lst_".$sq_num;
            rename "temp_lst",  "$lst_name";
            close TEMPA;

            unlink "temp_lst";
            open(TEMPA, ">> temp_lst") || die ("Could not open file temp_lst! \n");
        }
    }

    rename "temp_lst",  "test_"."lst_".($sq_num+1);
    close TEMPA;

    return $sq_num+1;
} #end of splitfile

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Accept 惊群现象测试perl脚本 - 深入浅出eBPF发布时间:2022-07-22
下一篇:
perl打印乘法表发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap