请教文件夹批量重命名

sh/bash/dash/ksh/zsh等Shell脚本
回复
ulosggs
帖子: 206
注册时间: 2009-03-25 13:17
送出感谢: 1 次
接收感谢: 0

请教文件夹批量重命名

#1

帖子 ulosggs » 2011-04-24 18:21

我有这么一堆文件夹,很有规律的

代码: 全选

S.E.N.S.神思者-01[海上丝路·海神][1988.04.25](APE)  S.E.N.S.神思者-28[Future][2000.02.23][OST](APE)
S.E.N.S.神思者-02[海上丝路·茶之圆舞曲][1988.10.10](APE)  S.E.N.S.神思者-29[透明な音楽][2000.08.23](APE)
S.E.N.S.神思者-03[海上丝路·伽罗][1989.08.05](APE)  S.E.N.S.神思者-30[透明な音楽2][2000.12.06](APE)
...
我需要将其重命名为

代码: 全选

01[海上丝路·海神][1988.04.25]  02[海上丝路·茶之圆舞曲][1988.10.10]
...
就是将前面的 "S.E.N.S.神思者-" 和后面的 "(APE)"去掉

请教该怎么操作
生命诚可贵
不因虚度年华而悔恨
Dropbox: http://db.tt/zYrxtyj
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 请教文件夹批量重命名

#2

帖子 eexpress » 2011-04-24 19:19

安装一个gprename
学点正则。
或者直接试试下面的效果。
rename -n 's/\(.*\)//g' S\.E\.N*
● 鸣学
fnan
帖子: 919
注册时间: 2009-07-01 22:04
送出感谢: 0
接收感谢: 13 次

Re: 请教文件夹批量重命名

#3

帖子 fnan » 2011-04-24 20:54

bash比较麻烦,不过可以用:
cd 文件夹
for i in $(ls -1|grep "神思者-");do mv $i $(echo $i|sed 's/.*-\(.*\)(.*/\1/');done
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 请教文件夹批量重命名

#4

帖子 lilydjwg » 2011-04-24 21:41

rename +1
ulosggs
帖子: 206
注册时间: 2009-03-25 13:17
送出感谢: 1 次
接收感谢: 0

Re: 请教文件夹批量重命名

#5

帖子 ulosggs » 2011-04-25 16:27

ok了 多谢
生命诚可贵
不因虚度年华而悔恨
Dropbox: http://db.tt/zYrxtyj
头像
frankleng
帖子: 406
注册时间: 2008-10-30 10:40
送出感谢: 0
接收感谢: 5 次

Re: 请教文件夹批量重命名

#6

帖子 frankleng » 2011-05-30 9:20

gprename我安装下看看。 :em01
挺好的。 :em11
Namas Amitabha
南无阿弥陀佛
一切有为法,如梦幻泡影,
如露亦如电,应作如是观。
horseinfly
帖子: 9
注册时间: 2011-05-30 3:04
送出感谢: 0
接收感谢: 0

Re: 请教文件夹批量重命名

#7

帖子 horseinfly » 2011-05-30 9:50

ls |sed 's/S.E.N.S.神思者-//g'|sed 's/(APE)//g'>1; for i in `cat 1`;do mkdir $1;done; for i in `cat 1`;do mv S.E.N.S.神思者-$i(APE)/* $i/ ; rm -r S.E.N.S.神思者-$i(APE);done
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: 请教文件夹批量重命名

#8

帖子 tusooa » 2011-06-23 22:25

代码: 全选

prename 's/^S.E.N.S.神思者-//;s/(APE)$//;' *

代码: 全选

] ls -ld //
回复

回到 “Shell脚本”