首页
社区
课程
招聘
未解决 [求助]文件改名SHELL脚本请教
发表于: 2019-6-28 15:00 2212

未解决 [求助]文件改名SHELL脚本请教

2019-6-28 15:00
2212
01.紅三四郎                          ===>  01.mp3
02.アクビ娘                          ===>  02.mp3
03.魔法のマコちゃん                  ===>  03.mp3
04.心のうた                          ===>  04.mp3
05.かぐや姫先生のうた                ===>  05.mp3
06.けろっこデメタン                  ===>  06.mp3
07.緑の陽だまり                      ===>  07.mp3
08.ジムボタンの歌                    ===>  08.mp3
09.ぼくらはきょうだいてんとう虫      ===>  09.mp3
10.シンドバットのぼうけん            ===>  10.mp3
11.ペペロの冒険                      ===>  11.mp3
12.クムクムのうた                    ===>  12.mp3

#!/bin/bash
COUNT=0
for FILE in *.mp3; do
    let COUNT+=1
    mv "$FILE" "$COUNT.mp3"
done

我上面的脚本执行的结果是下面的结果,怎么修改脚本?
谢谢!

1.mp3
2.mp3
3.mp3
4.mp3
5.mp3
6.mp3
7.mp3
8.mp3
9.mp3
10.mp3
11.mp3
12.mp3

-------------

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 822
活跃值: (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主给的文件名和脚本里面的文件名不一致,
01.紅三四郎                          ===>  01.mp3
02.アクビ娘                          ===>  02.mp3(这里原文件是没有.mp3后缀的)
for FILE in *.mp3; do (这里是有mp3后缀的)

-------------------------------------------------------

先用awk解决此类问题,
如,root@localhost:~# ls | grep mp3
01.nihao.mp3
02.nihao.mp3

root@localhost:~# ls | grep mp3 > list

root@localhost:~# awk -F. '{print "mv " $0 " " $1"."$3}' list > t.sh

root@localhost:~# cat t.sh
mv 01.aaa.mp3 01.mp3
mv 02.bbb.mp3 02.mp3

执行t.sh就行了
2019-6-28 15:44
0
雪    币: 822
活跃值: (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
揣测着把楼主脚本改一下,加一个和10的判断
#!/bin/bash
COUNT=0
for FILE in *.mp3; do
    let COUNT+=1
    if [ $COUNT -lt 10 ]
   then
        mv "$FILE" "0$COUNT.mp3"
   else
    mv "$FILE" "$COUNT.mp3"
    fi
done
这样写法的缺点如果文件名大于100,还要和100作比较
2019-6-28 16:00
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,已经可以了。一张专辑不会超过100首歌曲的。
2019-6-28 16:17
0
游客
登录 | 注册 方可回帖
返回
//