24小时热门版块排行榜    

查看: 1480  |  回复: 9

astringent

铜虫 (著名写手)

[求助] 批量文件改名

在一个文件夹下有30个文件,名字如下:2.zmat,5.zmat,8.zmat....一直到89.zmat。我想把他们重命名为:1.zmat,2.zmat,3.zmat....30.zmat。请问如何实现啊
另外我想所有文件头加入数字20,也就是20为第一行,原来的第一行变成第二行?用什么命令啊?
要是用一个命令怎么实现上面的想法,另外用两个命令呢?

先谢了
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安德

铁杆木虫 (著名写手)

** *_** ___ ***_ * _*

这个有意义,关注一下!
That'sit! Justdoit!
2楼2012-10-27 09:48:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gongxd325

至尊木虫 (文坛精英)

【答案】应助回帖

感谢参与,应助指数 +1
BatchFileRenamer 可以实现批量改文件名,文件名中加固定字符。网上一搜就能找到。
一个人做点好事并不难难的是一辈子做好事!!!
3楼2012-10-27 09:54:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuhuisfp

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
astringent: 金币+15, ★★★★★最佳答案 2012-10-29 17:29:00
#!/bin/env python2                                                                                                                                                                                                                             
                                                                                                                                                                                                                                               
import os                                                                                                                                                                                                                                      
                                                                                                                                                                                                                                               
for src, dest in zip(range(2, 90, 3), range(1, 31)):
    # rename file                                                                                                                                                                                                                                                                                                                                                                                
    os.popen("mv {0}.zmat {1}.zmat".format(src, dest))                                                                                                                                                                                         
    # insert "20" into the file
    os.popen("""sed -i '1 i "20"' {0}.zmat""".format(dest))

rename.py(248B)
http://kuai.xunlei.com/d/GHDATJHEROCN?p=130497

# run the script in your dir
python download_py_script
4楼2012-10-27 10:41:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chembetsey

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
Linux下批量重命名一般是用rename命令,你可以man下。
当然也可以用bash之类的脚本结合mv、cp实现重命名。
Windows下批量重命名的软件很多,我一般用一个很老的拖把更名器,能满足我的绝大部分需要。
5楼2012-10-27 11:16:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
4楼: Originally posted by liuhuisfp at 2012-10-27 10:41:16
#!/bin/env python2                                                                                                                                                                                      ...

多谢,但是为什么我用这个脚本的时候,往文件中写24的时候不成功呢?我是复制你的代码?


另外,我今天给你金币总不行,等网速好了,一定给你追加金币
6楼2012-10-27 20:54:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

christina1213

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
astringent: 金币+5 2012-10-29 17:29:22
这里是一个简单的重命名的脚本,你改一下,应该就可以用了。另外,要在文本中加内容,可以改这个脚本加一些内容,也可以另写一个,很快就好了!

#################################################
#
#Perl脚本:重命名文件名称
#
#################################################

#!/usr/bin/perl
use strict;
use warnings;

my $filename;

#打开要重命名文件所在的文件夹
#my $dir ='C:\Users\Haminy\Desktop\chen';
#my $dir ='/home/chenjun/c1_c2/work_file';
my $dir ='/home/chenjun/c1_c2';

opendir (DIR, $dir);                                                        #打开一个目录
my @dir = readdir DIR;                                                        #把文件名存入一个数组
#my $filenum = @dir;                                                                #读取数组元素个数,得知文件个数

foreach $filename (@dir) {
        #print $filename."\n";
        if ($filename=~m/(^\d+)-120611_I232_FCC0U0KACXX_L6_CSZPE012051239\d_(\d).fq/) {
                #print $1."\n".$2."\n";
                system("mv ./$filename ./H$1.fq_$2";

        }
       
}

closedir(DIR);
7楼2012-10-28 10:36:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

christina1213

木虫 (正式写手)

【答案】应助回帖

上面是我自己写的,路径啊,什么的参数,都需要改一下……祝顺利……
8楼2012-10-28 10:38:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qinghuoly

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
我一般是用vim编写一个批处理。
天地为帐,日月为灯,风雷为号角,云虹为旗令,山川为阵图,草木为兵卒。运阴阳五行为谋,策古今兴替为略。
9楼2012-10-28 11:28:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Adam2897

银虫 (小有名气)

选中文件,按F2重命名,文件名输入“20”按“ENTER”键。系统就给你自动添加排序了,只是带了“()”。
学无止境!
10楼2012-10-30 08:39:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 astringent 的主题更新
信息提示
请填处理意见