子串消除遇到的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
543082593
帖子: 234
注册时间: 2008-11-07 8:41

子串消除遇到的问题

#1

帖子 543082593 » 2009-07-10 2:09

很诡异
用CD.ape转成mp3, 然后用.cue文件切割 , 得到的文件由于.cue文件中的名字太长所以名字很长。
如我的 /media/windows_multimedia/music/michael jackson/Ultimate Collection CD1/下 有如下文件:

代码: 全选

Michael Jackson - 03 - I'll Be There.mp3
Michael Jackson - 04 - Got To Be There.mp3
Michael Jackson - 05 - I Wanna Be Where You Are.mp3
Michael Jackson - 06 - Ben.mp3
Michael Jackson - 07 - Dancing Machine.mp3
Michael Jackson - 08 - Enjoy Yourself.mp3
Michael Jackson - 09 - Ease On Down The Road.mp3
Michael Jackson - 10 - You Can't Win.mp3
Michael Jackson - 11 - Shake A Body.mp3
Michael Jackson - 12 - Shake Your Body.mp3
Michael Jackson - 13 - Don't Stop 'Til You Get Enough.mp3
Michael Jackson - 14 - Rock With You.mp3
Michael Jackson - 15 - Off The Wall.mp3
Michael Jackson - 16 - She's Out Of My Life.mp3
Michael Jackson - 17 - Sunset Driver.mp3
Michael Jackson - 18 - Lovely One.mp3
Michael Jackson - 19 - This Place Hotel.mp3
在我的mp3中由于字符串太长名字显示不完全,所以要截取。
假设当前路径是 /media/windows_multimedia/music/michael jackson/Ultimate Collection CD1/

代码: 全选

for elem in ./*
do
name=${elem#Michael*son\ -\ }
mv "$elem" "$name"
done
但是,得到的却是:

代码: 全选

mv: “./Michael Jackson - 03 - I'll Be There.mp3” 及 “./Michael Jackson - 03 - I'll Be There.mp3” 为同一文件
mv: “./Michael Jackson - 04 - Got To Be There.mp3” 及 “./Michael Jackson - 04 - Got To Be There.mp3” 为同一文件
mv: “./Michael Jackson - 05 - I Wanna Be Where You Are.mp3” 及 “./Michael Jackson - 05 - I Wanna Be Where You Are.mp3” 为同一文件
mv: “./Michael Jackson - 06 - Ben.mp3” 及 “./Michael Jackson - 06 - Ben.mp3” 为同一文件
mv: “./Michael Jackson - 07 - Dancing Machine.mp3” 及 “./Michael Jackson - 07 - Dancing Machine.mp3” 为同一文件
mv: “./Michael Jackson - 08 - Enjoy Yourself.mp3” 及 “./Michael Jackson - 08 - Enjoy Yourself.mp3” 为同一文件
mv: “./Michael Jackson - 09 - Ease On Down The Road.mp3” 及 “./Michael Jackson - 09 - Ease On Down The Road.mp3” 为同一文件
mv: “./Michael Jackson - 10 - You Can't Win.mp3” 及 “./Michael Jackson - 10 - You Can't Win.mp3” 为同一文件
mv: “./Michael Jackson - 11 - Shake A Body.mp3” 及 “./Michael Jackson - 11 - Shake A Body.mp3” 为同一文件
mv: “./Michael Jackson - 12 - Shake Your Body.mp3” 及 “./Michael Jackson - 12 - Shake Your Body.mp3” 为同一文件
mv: “./Michael Jackson - 13 - Don't Stop 'Til You Get Enough.mp3” 及 “./Michael Jackson - 13 - Don't Stop 'Til You Get Enough.mp3” 为同一文件
mv: “./Michael Jackson - 14 - Rock With You.mp3” 及 “./Michael Jackson - 14 - Rock With You.mp3” 为同一文件
mv: “./Michael Jackson - 15 - Off The Wall.mp3” 及 “./Michael Jackson - 15 - Off The Wall.mp3” 为同一文件
mv: “./Michael Jackson - 16 - She's Out Of My Life.mp3” 及 “./Michael Jackson - 16 - She's Out Of My Life.mp3” 为同一文件
mv: “./Michael Jackson - 17 - Sunset Driver.mp3” 及 “./Michael Jackson - 17 - Sunset Driver.mp3” 为同一文件
mv: “./Michael Jackson - 18 - Lovely One.mp3” 及 “./Michael Jackson - 18 - Lovely One.mp3” 为同一文件
mv: “./Michael Jackson - 19 - This Place Hotel.mp3” 及 “./Michael Jackson - 19 - This Place Hotel.mp3” 为同一文件
而如果,我单独对一个文件进行操作,就OK,如

代码: 全选

name=`ls *02*`
name1=${name#Mich*son\ -\ }
mv "$name" "$name1"
这样就可以成功,不明白为什么。
fall again
smooth criminal
they don't care about us
billie jean
beat it
dangerous
the lost children
childhood
ben
i will be there
speechless
she is out of my life
rock with you
...
LOVE U FOREVER
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 子串消除遇到的问题

#2

帖子 eexpress » 2009-07-10 8:35

“”“xxx"""

另外,不是有rename嘛。支持正则的。

另外,你转的软件,本身设置有问题,不带那些无用的信息多好。
● 鸣学
头像
543082593
帖子: 234
注册时间: 2008-11-07 8:41

Re: 子串消除遇到的问题

#3

帖子 543082593 » 2009-07-10 12:35

eexpress 写了:“”“xxx"""

另外,不是有rename嘛。支持正则的。

另外,你转的软件,本身设置有问题,不带那些无用的信息多好。
额,我一次还没用过rename呢。一般都是用mv。
我试一下吧。
fall again
smooth criminal
they don't care about us
billie jean
beat it
dangerous
the lost children
childhood
ben
i will be there
speechless
she is out of my life
rock with you
...
LOVE U FOREVER
回复