![]() | 1 LazyZhu 2015-04-26 22:37:53 +08:00 |
![]() | 3 LazyZhu 2015-04-26 22:45:33 +08:00 上面贴的就是你要的 我可以给你写出你想要的,但以后遇到类似问题你仍然不会,不如自己试着写. |
![]() | 4 lululau 2015-04-26 22:47:52 +08:00 google下rename, prename 之类的工具 |
![]() | 5 spacewander 2015-04-26 22:52:57 +08:00 name="./[三国演义_第01集_桃园三结义].Romance.Of.The.Three.Kingdoms.1994.EP01.DVDRiP.x264.DualAudio-Whm303.mkv" name=${name#*_} echo "${name%]*}.mkv" 大概像这样? |
![]() | 6 orzfly 2015-04-26 23:42:21 +08:00 |
![]() | 7 jb 2015-04-26 23:50:12 +08:00 感觉直接rename不就好了? 比如有test1.cpp test2.cpp test3.cpp test4.cpp 要改成code1.cpp code2.cpp ... code4.cpp 直接: $rename test code * 就好了呀 |
![]() | 8 jb 2015-04-26 23:50:52 +08:00 对不起,窝没看到你最后的结果。理解错了。。。 |
![]() | 9 extreme 2015-04-27 00:34:48 +08:00 ![]() cd 存放mkv的目录 for i in *.mkv do mv ${i} $(echo ${i} | sed -r 's/^\[.*_(.*)_(.*)\].*\.mkv$/\1-\2.mkv/g') done 其实可以用更简便的rename,不过貌似并非每个发行版本的rename都是正则表达式版本。 rename 's/^\[.*_(.*)_(.*)\].*\.mkv$/$1-$2.mkv/g' *.mkv |
![]() | 10 extreme 2015-04-27 00:39:40 +08:00 @extreme 除非你也修改正则表达式,否则记得上面的命令的*.mkv不要改成其他的,即使是./*.mkv(把^改成.*吧),如果改了,正则表达式可能就无法匹配了。 |
![]() | 11 LazyZhu 2015-04-27 04:08:12 +08:00 ![]() for episode in *.mkv; do mv ${episode} ${episode:6:4}-${episode:11:5}.mkv done # Tested under Debian7.8 |
![]() | 12 Chigogo OP |