Chinaunix

标题: Perl怎么判断文件内容是否为空呢? [打印本页]

作者: zhaod06211    时间: 2012-08-07 13:23
标题: Perl怎么判断文件内容是否为空呢?
如题,怎么去判断文件内容是否为空,我试过用 if  -s 和 if  -z  都不行,请问如何解决?
有谁碰到过类似的问题呢?
作者: cdtits    时间: 2012-08-07 13:26
什么样的文件判断为空?
作者: zhaod06211    时间: 2012-08-07 13:27
普通的文本文件
作者: cdtits    时间: 2012-08-07 13:28
本帖最后由 cdtits 于 2012-08-07 13:32 编辑

回复 3# zhaod06211


    文件长度为 0 么?
  1.     if (-f $file and -z _)
复制代码

作者: zhaod06211    时间: 2012-08-07 13:29
检查文件内容是否为空咯
作者: wxlfh    时间: 2012-08-07 13:40
本帖最后由 wxlfh 于 2012-08-07 13:41 编辑

判断文件内容是否为空,你是以什么为标准?是文件长度为零吗?
作者: zhaod06211    时间: 2012-08-07 13:42
回复 6# wxlfh


    长度为0就为空嘛
作者: zhaod06211    时间: 2012-08-07 13:48
回复 4# cdtits


    这是不行的,我试了。
作者: cdtits    时间: 2012-08-07 13:55
回复 8# zhaod06211


    是吗?为什么我运行后可以呢?
  1. #!/usr/bin/env perl

  2. @files = <*>;
  3. for $file (@files) {
  4.     print "$file\n" if (-f $file and -z _);
  5. }
复制代码

作者: yinyuemi    时间: 2012-08-07 14:08
本帖最后由 yinyuemi 于 2012-08-07 14:08 编辑

stat
perl -le 'if(! (stat "file")[7] ){print "Empty file"}'

作者: zhaod06211    时间: 2012-08-07 14:26
我知道原因了,我对文件有一个echo "" > test.txt 这个操作, 虽然里面没内容,但是有空格之类的吧,所以才一直判断不了,应该怎么把文件初始成空的呢?
作者: zhaod06211    时间: 2012-08-07 14:34
回复 9# cdtits


    可以了,谢谢你。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2