就是文件是形如
群星 - 堡垒.wav.m4a
群星 - 悲.wav.m4a
群星 - 别恐惧.wav.m4a
然后我想改成
堡垒,m4a
悲.m4a
别恐惧.m4a
然后我是这样写的
#!bin/bash
for i in 群星\ -\ *.wav.m4a
do
cp "$i" * .m4a
done
好像完全不对啊,求指点,我是新手
求助一个改名的脚本
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
Re: 求助一个改名的脚本
代码: 全选
for i in 群星*.wav.m4a; do a="${i/wav./}";b="${a##群星\ -\ }"; cp "$i" "$b" ;done
- 永恒之法则
- The eternal law
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求助一个改名的脚本
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 求助一个改名的脚本
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'
群星 - 别恐惧.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'
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04