
求一个非常初级的循环重命名shell命令
-
- 帖子: 23
- 注册时间: 2009-10-16 1:16
求一个非常初级的循环重命名shell命令
如下图:
因为视频要放在手机中观看,如何保留视频名字前的排序号码,循环重命名去掉“韩国小子双节棍教学 ”字样?比如“01韩国小子双节棍教学 单棍01段.flv"改为”01单棍01段.flv"?


-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求一个非常初级的循环重命名shell命令
代码: 全选
rename 's/([[:digit:]]+).*[[:space:]](.*\.flv)/$1$2/' *.flv
-
- 帖子: 23
- 注册时间: 2009-10-16 1:16
Re: 求一个非常初级的循环重命名shell命令
那如果是下图呢?
比如“01奋斗龙暑期双节棍教学100课---第一课:腋下换手.flv"改为“01腋下换手.flv"?-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求一个非常初级的循环重命名shell命令
代码: 全选
rename 's/^([[:digit:]]+).*:(.*\.flv)/$1$2/' *.flv
代码: 全选
rename 's/原文件名/新文件名/' 要改名的文件
这里 ^([[:digit:]]+).*:(.*\.flv) 是一个正则表达式 表示这样一个抽象概念 : 以多个连续数字([[:digit:]]+)开头(^)后接任意字符(.*)直到(:)再接任意字符以.fly结束(.*\.flv)。
用这个一个抽象概念表示你要改名的原文件名,替换为$1$2
$1$2分别对应前面两括号中的内容。
上次由 cao627 在 2012-04-29 13:23,总共编辑 2 次。
- qq420100523
- 帖子: 1684
- 注册时间: 2009-07-31 18:56
- 系统: windows、ubuntu
- 来自: 广东阳江
Re: 求一个非常初级的循环重命名shell命令
授人予鱼,不如授人予渔呀 

-
- 帖子: 23
- 注册时间: 2009-10-16 1:16
Re: 求一个非常初级的循环重命名shell命令
恩,谢谢了。不过我有点晕!cao627 写了:代码: 全选
rename 's/^([[:digit:]]+).*:(.*\.flv)/$1$2/' *.flv
s/^([[:digit:]]+).*:(.*\.flv)/$1$2/'代码: 全选
rename 's/原文件名/新文件名/' 要改名的文件
这里 ^([[:digit:]]+).*:(.*\.flv) 是一个正则表达式 表示这样一个抽象概念 : 以多个连续数字([[:digit:]]+)开头(^)后接任意字符(.*)直到(:)再接任意字符以.fly结束(.*\.flv)。
用这个一个抽象概念表示你要改名的原文件名,替换为$1$2
$1$2分别对应前面两括号中的内容。

上次由 lam2888 在 2012-04-30 22:28,总共编辑 1 次。
- mjp123
- 帖子: 703
- 注册时间: 2009-04-09 15:06
Re: 求一个非常初级的循环重命名shell命令
4L白说了。 

- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
Re: 求一个非常初级的循环重命名shell命令
这里的正则表达式,简单来说就是匹配指定格式,然后进行指定操作。
格式与操作
格式非常丰富了,可以参考相关资料
\w 匹配0到1个单词
\d 配置0到1个数字
……
操作可以是替换、删除、引用等
格式与操作
格式非常丰富了,可以参考相关资料
\w 匹配0到1个单词
\d 配置0到1个数字
……
操作可以是替换、删除、引用等
- 永恒之法则
- The eternal law