标题: [问题求助] 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
来个文艺青年版的:- 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
另外一个文艺青年:- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |