免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4586 | 回复: 10
打印 上一主题 下一主题

perl获取指定文件夹下的以cc开头的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-27 18:53 |只看该作者 |倒序浏览
本帖最后由 ice_ma 于 2014-10-28 09:59 编辑

要显示的路径是这个/root/cs/release/,下面有很多各种各样格式的文件,现在想要显示以cc.开头的文件,比如cc.1212   cc.5435   cc.2231   cc.adasd.213等等类似这种格式的文件信息,搜了论坛改了下面这个脚本,但是是把/root/cs/release/下面的所有文件都显示了,

代码如下:现在想要只显示5分钟内产生的以cc.开头的文件~谁帮忙改改
  1. #!/usr/bin/perl
  2. opendir(DIR,'/root/cs/release/');
  3. while(my $file = readdir(DIR))
  4. {
  5.           next if ($file eq '.');
  6.           next if ($file eq '..');
  7.           print $file,"\n";

  8. }
  9. closedir(DIR);
复制代码

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
2 [报告]
发表于 2014-10-27 19:58 |只看该作者
额。。。。glob ?

论坛徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17处女座
日期:2014-09-01 09:25:1115-16赛季CBA联赛之吉林
日期:2015-12-22 14:01:5215-16赛季CBA联赛之广东
日期:2016-03-08 18:49:422016科比退役纪念章
日期:2016-07-06 12:19:55
3 [报告]
发表于 2014-10-27 20:02 |只看该作者
本帖最后由 stanley_tam 于 2014-10-27 20:03 编辑

这样?{:3_193:}
  1. #!/usr/bin/perl
  2. opendir(DIR,'/root/cs/release/');
  3. while(my $file = readdir(DIR))
  4. {
  5.           print $file,"\n" if index($file, 'cc.') == 0;
  6. }
  7. closedir(DIR);
复制代码

论坛徽章:
0
4 [报告]
发表于 2014-10-28 09:59 |只看该作者
回复 3# stanley_tam

这样显示不出来,什么文件都没显示


   

论坛徽章:
0
5 [报告]
发表于 2014-10-28 11:18 |只看该作者
本帖最后由 kingfighters 于 2014-10-28 11:19 编辑

回复 1# ice_ma
  1. #!/usr/bin/perl
  2. opendir(DIR,'/root/cs/release/');
  3. while(my $file = readdir(DIR))
  4. {
  5.           next if ($file eq '.');
  6.           next if ($file eq '..');
  7.           if ($file =~ /^ss/ ){
  8.               print $file,"\n";
  9.           }

  10. }
  11. closedir(DIR);
复制代码

论坛徽章:
0
6 [报告]
发表于 2014-10-28 11:21 |只看该作者
回复 1# ice_ma

噢,还有个五分钟的限定,那你就在if的加上and stat($file)[10]-now > 300 这类的设定吧


   

论坛徽章:
0
7 [报告]
发表于 2014-10-28 12:05 |只看该作者
回复 5# kingfighters


这样可以了,谢谢。
   

论坛徽章:
0
8 [报告]
发表于 2014-10-28 12:07 |只看该作者
回复 6# kingfighters
  1. #!/usr/bin/perl
  2. opendir(DIR,'/root/cs/release/');
  3. while(my $file = readdir(DIR))
  4. {
  5.           next if ($file eq '.');
  6.           next if ($file eq '..');
  7.         if ($file =~ /^cc/) and (stat($file)[10]-now > 300) {   
  8.         print $file,"\n";
  9.                                }
  10. }
  11. closedir(DIR);
复制代码
这样写直接报错了,错误如下:
  1. syntax error at ./jk.pl line 7, near ") and"
  2. syntax error at ./jk.pl line 10, near "}"
  3. Execution of ./jk.pl aborted due to compilation errors.
复制代码
感觉perl好难啊

   

论坛徽章:
8
技术图书徽章
日期:2013-08-22 11:21:28未羊
日期:2015-01-19 22:22:25巳蛇
日期:2014-08-11 16:53:08子鼠
日期:2014-05-29 09:04:44摩羯座
日期:2014-04-11 14:15:07丑牛
日期:2014-01-24 12:41:28金牛座
日期:2013-11-21 17:38:28射手座
日期:2015-01-21 08:50:32
9 [报告]
发表于 2014-10-28 13:19 |只看该作者
本帖最后由 huang6894 于 2014-10-28 13:20 编辑

噗哧~
  1. #! /usr/bin/perl -w
  2. # File Name: t.pl

  3. my $now = time();
  4. my $dir = shift;
  5. my @file = glob("$dir/cc*");
  6. for my $f (@file){
  7.         my $t = (stat "$f")[9];
  8.         print $f.$/ unless $now - $t > 300;
  9.         
  10. }
复制代码

论坛徽章:
0
10 [报告]
发表于 2014-10-28 15:01 |只看该作者
回复 9# huang6894


    这样写,没有任何输出,/root/cs/release/目录下有新产生的cc文件,但是不显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP