分页: 1 / 1
求助一个改名的脚本
发表于 : 2011-11-01 10:25
由 夜聆风
就是文件是形如
群星 - 堡垒.wav.m4a
群星 - 悲.wav.m4a
群星 - 别恐惧.wav.m4a
然后我想改成
堡垒,m4a
悲.m4a
别恐惧.m4a
然后我是这样写的
#!bin/bash
for i in 群星\ -\ *.wav.m4a
do
cp "$i" * .m4a
done
好像完全不对啊,求指点,我是新手
Re: 求助一个改名的脚本
发表于 : 2011-11-01 17:56
由 naturalaw
代码: 全选
for i in 群星*.wav.m4a; do a="${i/wav./}";b="${a##群星\ -\ }"; cp "$i" "$b" ;done
Re: 求助一个改名的脚本
发表于 : 2011-11-01 18:24
由 naturalaw
代码: 全选
rename .wav.m4a .m4a *m4a
rename '群星 - ' "" *m4a
Re: 求助一个改名的脚本
发表于 : 2011-11-01 20:20
由 lilydjwg
naturalaw 写了:代码: 全选
rename .wav.m4a .m4a *m4a
rename '群星 - ' "" *m4a
我本来准备答 rename 的。。。好吧,我用 Perl 版的:
代码: 全选
perl-rename 's/群星 - (.*).wav.m4a/\1.m4a/' *.m4a
另外,创建这种测试文件名似乎不容易,我用的是:
代码: 全选
xsel | xargs -I{} touch "{}"
Re: 求助一个改名的脚本
发表于 : 2011-11-01 21:11
由 naturalaw
lilydjwg 写了:naturalaw 写了:代码: 全选
rename .wav.m4a .m4a *m4a
rename '群星 - ' "" *m4a
我本来准备答 rename 的。。。好吧,我用 Perl 版的:
代码: 全选
perl-rename 's/群星 - (.*).wav.m4a/\1.m4a/' *.m4a
另外,创建这种测试文件名似乎不容易,我用的是:
代码: 全选
xsel | xargs -I{} touch "{}"
perl正则方面果然最强。
Re: 求助一个改名的脚本
发表于 : 2011-11-01 22:06
由 fnan
rename -v 's/.* |\.wav//g' 群星*.m4a
群星 - 别恐惧.wav.m4a renamed as 别恐惧.m4a
群星 - 堡垒.wav.m4a renamed as 堡垒.m4a
群星 - 悲.wav.m4a renamed as 悲.m4a
for i in 群星*.m4a;do mv -v "$i" "${i//?(* |.wav)/}";done
`群星 - 别恐惧.wav.m4a' -> `别恐惧.m4a'
`群星 - 堡垒.wav.m4a' -> `堡垒.m4a'
`群星 - 悲.wav.m4a' -> `悲.m4a'
Re: 求助一个改名的脚本
发表于 : 2011-11-01 22:10
由 naturalaw
${i//?(* |.wav)/}
又见到高级货。久不用又忘记了。