求一个非常初级的循环重命名shell命令

sh/bash/dash/ksh/zsh等Shell脚本
回复
lam2888
帖子: 23
注册时间: 2009-10-16 1:16

求一个非常初级的循环重命名shell命令

#1

帖子 lam2888 » 2012-04-29 10:46

如下图:
DeepinScrot-5952.png
因为视频要放在手机中观看,如何保留视频名字前的排序号码,循环重命名去掉“韩国小子双节棍教学 ”字样?比如“01韩国小子双节棍教学 单棍01段.flv"改为”01单棍01段.flv"?
:em06
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求一个非常初级的循环重命名shell命令

#2

帖子 cao627 » 2012-04-29 11:37

代码: 全选

rename 's/([[:digit:]]+).*[[:space:]](.*\.flv)/$1$2/' *.flv
lam2888
帖子: 23
注册时间: 2009-10-16 1:16

Re: 求一个非常初级的循环重命名shell命令

#3

帖子 lam2888 » 2012-04-29 12:09

那如果是下图呢?
DeepinScrot-5847.png
比如“01奋斗龙暑期双节棍教学100课---第一课:腋下换手.flv"改为“01腋下换手.flv"?
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: 求一个非常初级的循环重命名shell命令

#4

帖子 cao627 » 2012-04-29 13:00

代码: 全选

rename 's/^([[:digit:]]+).*:(.*\.flv)/$1$2/' *.flv

代码: 全选

rename 's/原文件名/新文件名/' 要改名的文件
s/^([[:digit:]]+).*(.*\.flv)/$1$2/'


这里 ^([[: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命令

#5

帖子 qq420100523 » 2012-04-29 13:07

授人予鱼,不如授人予渔呀 :em05
lam2888
帖子: 23
注册时间: 2009-10-16 1:16

Re: 求一个非常初级的循环重命名shell命令

#6

帖子 lam2888 » 2012-04-30 19:20

cao627 写了:

代码: 全选

rename 's/^([[:digit:]]+).*:(.*\.flv)/$1$2/' *.flv

代码: 全选

rename 's/原文件名/新文件名/' 要改名的文件
s/^([[:digit:]]+).*(.*\.flv)/$1$2/'


这里 ^([[:digit:]]+).*:(.*\.flv) 是一个正则表达式 表示这样一个抽象概念 : 以多个连续数字([[:digit:]]+)开头(^)后接任意字符(.*)直到(:)再接任意字符以.fly结束(.*\.flv)。

用这个一个抽象概念表示你要改名的原文件名,替换为$1$2
$1$2分别对应前面两括号中的内容。
恩,谢谢了。不过我有点晕! :em20
上次由 lam2888 在 2012-04-30 22:28,总共编辑 1 次。
头像
mjp123
帖子: 703
注册时间: 2009-04-09 15:06

Re: 求一个非常初级的循环重命名shell命令

#7

帖子 mjp123 » 2012-04-30 19:56

4L白说了。 :em05
头像
naturalaw
帖子: 1360
注册时间: 2011-09-06 22:04

Re: 求一个非常初级的循环重命名shell命令

#8

帖子 naturalaw » 2012-05-01 1:48

这里的正则表达式,简单来说就是匹配指定格式,然后进行指定操作。
格式与操作
格式非常丰富了,可以参考相关资料
\w 匹配0到1个单词
\d 配置0到1个数字
……
操作可以是替换、删除、引用等
  • The eternal law
回复