zoukankan      html  css  js  c++  java
  • perl 操作文件指针

    之前使用perl 脚本写了一个读取文件的小工具,但是由于当时使用的Tie 的方式,在处理大文件时,效率并不十分理想,所以在网上搜索了perl 如何操作文件指针的文章,自己也学习一下,本博客就是学习过程中留下的记录。

     perl 打开文件的方式命令如下,"<"的含义为将test.txt文件的内容重定向到FILE 文件指针中

    open FILE, "<", "/opt/test/test.txt";

    perl 在操作文件指针时,可以用seek 函数移动文件指针

    seek (filevar, distance, relative_to);

    在文件中向前/后移动,有三个参数:
    1、filevar,文件指针
    2、distance,移动的字节数,正数向前移动,负数往回移动
    3、reletive_to,值可为0、1或2。为0时,从文件头开始移动,为1时,相对于当前位置(将要读的下一行)移动,为2时,相对于文件末尾移动。
    运行成功返回真(非零值),失败则返回零,常与tell函数合用。

    测试脚本如下,作用为打开/opt/test/test.txt,并且将文件指针偏移 0 个字节,然后读取剩余的数据,读取方式为按行读取

    #!/usr/bin/perl -w
    
    open FILE, "<", "/opt/test/test.txt";
    
    my $position = tell(FILE);
    
    seek(FILE, $position, 0);
    
    while (<FILE>) {
       print ($_);
    }
    
    close (FILE);

    perl 在操作文件指针时,还有一个按照字节读取的函数--getc(FILEHANDLE)  ,该函数将返回一个字节的内容,并且文件指针也移动一个字节

    如果用户想直接获得文件的字节数,可以先偏移到文件末尾,再查看当前偏移位置来查看

    open FILE, "<", "/opt/test/test.txt";
    
    seek(FILE, 0, 2);
    
    my $position = tell(FILE);

    参考博文:

    http://blog.mcshell.org/2013/05/25/perl_seek_tell_to_tail_-f.html

    http://www.yiibai.com/perl/perl_tell.html

  • 相关阅读:
    前端学习(十五):了解 Javascript
    前端学习(十四):CSS布局
    前端学习(十三):CSS盒子模型
    python pip及安装包安装
    linux搜索日志的命令方法
    spring boot GET请求方式无法访问的原因
    [线上问题]redisTemplate.setValueSerializer 对redis值的全局设置影响
    des对称加密算法 Invalid key length: 8 bytes
    jdk导入证书命令 https升级证书对支付的影响
    事务管理 异常机制
  • 原文地址:https://www.cnblogs.com/chenfool/p/5585868.html
Copyright © 2011-2022 走看看