Chinaunix

标题: 新手求助,批量修改文件的脚本出现问题 [打印本页]

作者: qianyemlf    时间: 2014-07-24 09:52
标题: 新手求助,批量修改文件的脚本出现问题
本帖最后由 qianyemlf 于 2014-07-24 10:06 编辑

自己网上找的一个脚本,自己修改了一下,发现文件名并没有得到修改,求大神帮忙看看脚本哪里有问题
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. opendir DIR, "I:/baicao/new_result" or die;
  5.         my @files = readdir DIR;
  6. foreach my $file (@files)
  7. {
  8.               print "$file\n";
  9.         my $newname=$file;
  10.         $newname=~s/7genes,7taxa//g;
  11.         rename $file,$newname;
  12. }
  13. print "done\n";
复制代码

作者: q1208c    时间: 2014-07-24 10:01
问题呢?
作者: qianyemlf    时间: 2014-07-24 10:04
脚本跑了但是没有达到实际效果,就是文件名并没有被改掉,不知道什么地方有问题回复 2# q1208c


   
作者: q1208c    时间: 2014-07-24 10:20
回复 3# qianyemlf

你确定知道你要改的文件名 是什么么?

可否贴几个原文件名上来看看?
   
作者: qianyemlf    时间: 2014-07-24 10:23
回复 4# q1208c
  1. ORTHOMCL10631(7 genes,7 taxa)
  2. ORTHOMCL10638(7 genes,7 taxa)
  3. 改成
  4. ORTHOMCL10631
  5. ORTHOMCL10638
  6. 就是把后面的去掉
复制代码

作者: q1208c    时间: 2014-07-24 11:33
回复 5# qianyemlf

那你自己看一下代码, 你的匹配根本不会成功.
   
作者: qianyemlf    时间: 2014-07-24 13:05
本帖最后由 qianyemlf 于 2014-07-24 13:06 编辑

回复 6# q1208c

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. opendir DIR, "I:/baicao/new_result" or die;
  5.         my @files = readdir DIR;
  6. foreach my $file (@files)
  7. {
  8.               #print "$file\n";
  9.         my $newname=$file;
  10.         $newname=~s/\(.*\)//;
  11.         rename ("I:/baicao/new_result/$file", "I:/baicao/new_result/$newname");
  12.         print "$file\n";
  13. }
  14. print "done\n";
复制代码
这样改就ok了





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