- 论坛徽章:
- 0
|
本帖最后由 qizhi502 于 2010-11-24 16:49 编辑
回复 6# zhlong8
$1代表第一对小括号中的内容,针对字符串已实验成功,现在又出点问题:
在批量修改文件名时,提示
can't rename D:/seq/B1109302(OI-P1-1)M13+_E01.seq to OI-P1-1: OI-P1-1 exists at E:\perl\practice\rename.pl line 12.
但是文件夹里根本没有存在
并且看了http://bbs.chinaunix.net/thread-1820956-1-1.html里面的帖子,但如果将后面的warn提示改成
warn "can't rename $file to $newfile: $newfile exists " if -e $newfile;
rename $file, $newfile or warn "rename $file to $newfile failed!";
结果文件夹的文件都没了,有些纳闷- #!/usr/bin/perl -w
- #rename lots size file name
- use strict;
- my $file;
- my $newfile;
- foreach $file(glob "D:/seq/*.seq")
- {
- $file =~ /\(([^)]*)\)/; #提取 () 中的内容
- $newfile = $1;
- if (-e $newfile)
- {
- warn "can't rename $file to $newfile: $newfile exists ";
- } elsif (rename $file, $newfile) {
- } else {
- warn "rename $file to $newfile failed:$! ";
- }
- }
- 或
- [code]#!/usr/bin/perl -w
- #rename lots size file name
- use strict;
- my $file;
- my $newfile;
- foreach $file(glob "D:/seq/*.seq")
- {
- $file =~ /\(([^)]*)\)/; #提取 () 中的内容
- $newfile = $1;
- warn "can't rename $file to $newfile: $newfile exists" if -e $newfile;
- rename $file, $newfile or warn "rename $file to $newfile failed!"
- }
复制代码 |
|