+ -
当前位置:首页 → 问答吧 → 求助,perl怎样读取一个文件的记录条数啊?

求助,perl怎样读取一个文件的记录条数啊?

时间:2010-10-17

来源:互联网

求助,perl怎样读取一个文件的记录条数啊?
环境:window下
没有wc -l的命令
烦请高手指点,谢谢

作者: qingduo04   发布时间: 2010-10-17

在线等待!

作者: qingduo04   发布时间: 2010-10-17

请表达清楚,最好上数据

作者: iamlimeng   发布时间: 2010-10-17

perl -ne " print $. if eof;" abc.txt   
楼主要的是这个吗?

作者: liyangole   发布时间: 2010-10-17

我试了。应该没问题。

作者: liyangole   发布时间: 2010-10-17

回复 iamlimeng


    因为我是做BI的,做经营分析的,从其他的平台有接口数据文件过来,但是有的没有校验文件,而这个校验文件中,就包含了数据文件的记录条数,我必须用perl在window下实现生成这个记录条数的校验文件,所以找这样的命令
不知道这样表达是不是准确?

作者: qingduo04   发布时间: 2010-10-17

回复 liyangole


    厉害!!!,只是不知道具体的含义,刚刚测试了一下,可以实现,谢谢!等明天到公司再测试一下,大数据量的,几百万条记录的文件!

作者: qingduo04   发布时间: 2010-10-17

回复 liyangole


    能不能详细的介绍一下这个命令?谢谢

作者: qingduo04   发布时间: 2010-10-17

回复 qingduo04


    过奖,我刚刚学perl,常混迹与高手林立的论坛上,总结了一些高手的东西而已,大家多多交流。我原来也做过经分系统的接口,给移动做的OTA经分接口。用SHELL就搞定了。当时不会用perl.

作者: liyangole   发布时间: 2010-10-17

回复 liyangole


    呵呵,老前辈啊,看来得常来这学习啊

作者: qingduo04   发布时间: 2010-10-17

到达文件末,打印当前行号

作者: iamlimeng   发布时间: 2010-10-17

回复 qingduo04


    就是用到了全局变量,$.(读取上一个文件句柄的当前输入行号。),还有了eof函数(读取到文件末尾的话,返回1)。具体就是显示文件末尾的行号,就是文件的记录数。

作者: liyangole   发布时间: 2010-10-17

回复 qingduo04


    iamlimeng 才是老前辈。我看了他不少有借鉴的帖子了

作者: liyangole   发布时间: 2010-10-17

回复 liyangole


    谢谢,受益匪浅!

作者: qingduo04   发布时间: 2010-10-17

回复 liyangole


    我想问问,perl -ne #n和e 这样两个参数在这里是什么意思啊? 请教。

作者: masylichu   发布时间: 2010-10-17

回复 masylichu


   与One-Liner相关的Perl命令行参数:

-0<数字>

(用 8进制表示)指定记录分隔符($/变量),默认为换行

-00

段落模式,即以连续换行为分隔符

-0777

禁用分隔符,即将整个文件作为一个记录

-a

自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定

-F

指定-a的分隔符,可以使用正则表达式

-e

执行指定的脚本。

-i<扩展名>

原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。

-l
对输入内容自动chomp,对输出内容自动添加换行

-n
自动循环,相当于 while(<>) { 脚本; }

-p
自动循环+自动输出,相当于 while(<>) { 脚本; print; }


这个是我总结的。

作者: liyangole   发布时间: 2010-10-17

回复 liyangole


    灰常感谢。

作者: masylichu   发布时间: 2010-10-17

学习了!

作者: qingduo04   发布时间: 2010-10-17