分页: 1 / 1
求一个非常初级的循环重命名shell命令
发表于 : 2012-04-29 10:46
由 lam2888
如下图:
因为视频要放在手机中观看,如何保留视频名字前的排序号码,循环重命名去掉“韩国小子双节棍教学 ”字样?比如“01韩国小子双节棍教学 单棍01段.flv"改为”01单棍01段.flv"?

Re: 求一个非常初级的循环重命名shell命令
发表于 : 2012-04-29 11:37
由 cao627
代码: 全选
rename 's/([[:digit:]]+).*[[:space:]](.*\.flv)/$1$2/' *.flv
Re: 求一个非常初级的循环重命名shell命令
发表于 : 2012-04-29 12:09
由 lam2888
那如果是下图呢?
比如“01奋斗龙暑期双节棍教学100课---第一课:腋下换手.flv"改为“01腋下换手.flv"?
Re: 求一个非常初级的循环重命名shell命令
发表于 : 2012-04-29 13:00
由 cao627
代码: 全选
rename 's/^([[:digit:]]+).*:(.*\.flv)/$1$2/' *.flv
代码: 全选
rename 's/原文件名/新文件名/' 要改名的文件
s/^
([[:digit:]]+).*
:(.*\.flv)/
$1$2/'
这里 ^([[:digit:]]+).*:(.*\.flv) 是一个
正则表达式 表示这样一个
抽象概念 : 以多个连续数字([[:digit:]]+)开头(^)后接任意字符(.*)直到(:)再接任意字符以.fly结束(.*\.flv)。
用这个一个
抽象概念表示你要改名的原文件名,替换为$1$2
$1$2分别对应前面两括号中的内容。
Re: 求一个非常初级的循环重命名shell命令
发表于 : 2012-04-29 13:07
由 qq420100523
授人予鱼,不如授人予渔呀

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

Re: 求一个非常初级的循环重命名shell命令
发表于 : 2012-05-01 1:48
由 naturalaw
这里的正则表达式,简单来说就是匹配指定格式,然后进行指定操作。
格式与操作
格式非常丰富了,可以参考相关资料
\w 匹配0到1个单词
\d 配置0到1个数字
……
操作可以是替换、删除、引用等