Board logo

标题: [问题求助] shell 批量更改电影的名字===自己解决问题(结帖) [打印本页]

作者: hacker85    时间: 2012-4-3 17:49     标题: shell 批量更改电影的名字===自己解决问题(结帖)

本帖最后由 hacker85 于 2012-4-3 20:59 编辑

有这样一部电影,名字如下,在电视里放映的时候没有办法设置显示风格,于是在一堆缩略图标中找到某某集太不容易了。
[6v电影www.dy131.com]斯巴达克斯:复仇.第二季HD中英双字1280高清02.rmvb
[6v电影www.dy131.com]斯巴达克斯:复仇.第二季HD中英双字1280高清03.rmvb
[6v电影www.dy131.com]斯巴达克斯:复仇.第二季HD中英双字1280高清07.rmvb
【更多电视剧请去www.dy131.com】斯巴达克斯第二季04集1024x576[中英双字].rmvb
【更多电视剧请去www.dy131.com】斯巴达克斯第二季05集1024x576[中英双字].rmvb
【更多电视剧请去www.dy131.com】斯巴达克斯第二季06集1024x576[中英双字].rmvb
【更多美剧请去www.dy131.com】斯巴达克斯:复仇.第二季1024高清01正式版.mkv
【更多美剧请去www.dy131.com】斯巴达克斯:复仇.第二季1024高清08.mkv
【更多美剧请去www.dy131.com】斯巴达克斯:复仇.第二季1024高清09.mkv
【更多美剧请去www.dy131.com】斯巴达克斯:复仇.第二季1024高清10.mkv

================================================
以上是所有电影的名字,它们格式不尽相同,他们的名字也不相同……
在shell下怎么改呢?
文件扩展名不要变,只要变前面的部分就可以了,希望变成:
01.mkv
03.rmvb
......

才发现,我竟然没有下载第二集,嘻嘻。
================================================

注:这个电影相当不错,准确地说是美剧,哈哈。
作者: hacker85    时间: 2012-4-3 17:49

本帖最后由 hacker85 于 2013-1-17 13:48 编辑

貌似对于这样的文件名,即使是用批处理也不容易一下子实现,确实不容易。

给出这两段代码,以提供思路:
一、
vi mv.sh
#!/bin/bash

ls *.jpg >file.txt

for i in $(cat file.txt)
do
name=$(echo $i|awk -F\\ '{print $4}')
mv $i $name
done

二、
#!/bin/sh
var=0;
for fname in *;
do
var=$((var+1));
if [ $fname = bat_change_file_name.sh ];
then
var=$((var-1));
else
mv $fname $var.mp3;
fi
done
作者: hacker85    时间: 2012-4-3 19:47

顶上去
作者: hacker85    时间: 2012-4-3 20:37

1、
     $ ls | awk -F '清' '{print $2}'
2、
     $ ls | awk -F '季' '{print $2}'
3、
     $ ls | awk -F '集' '{print $1}'
作者: find    时间: 2012-4-3 23:13

来个文艺青年版的:
  1. paste -d '' <(ls | sed 's/.*[^0-9]\+\([0-9][0-9]\)[^0-9]\+.*/\1/') <(ls | sed 's/.*\(\.[a-z]\+\)$/\1/')
复制代码

作者: find    时间: 2012-4-3 23:29

另外一个文艺青年:
  1. ls | sed 's/.*[^0-9]\([0-9][0-9]\.[a-z]\+\)$/\1/' | sed 's/.*[^0-9]\([0-9][0-9]\)[^0-9].*\(\.[a-z]\+\)$/\1\2/'
复制代码

作者: hacker85    时间: 2012-4-20 16:50

回复 6# find


    呵呵,谢谢你的回复,不过说实话,5楼和6楼的代码我没有太看懂,能说说怎么理解吗?
作者: gawk    时间: 2012-4-20 17:26

回复 7# hacker85


    6楼是正则,5楼是进程替换,找本教程看看就懂了。
作者: hacker85    时间: 2012-6-4 16:26

回复 8# gawk


    手头如果有现成的教程的话,麻烦告之一下名字,我去下载学习一下。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2