分析:
语录下载时是按时期打包的;
全部解压到一个文件夹时,关于编号问题,操作起来很不方便;
特此给语录重新编号;
无需在意原先时期编号问题;
重新建立惯性思维模式;
统计语录文件总个数用来表示循环中的前缀变量
-> 重命名规则:
保留源文件的信息到文本中
给音频文件添加前缀
命名时名字的顺序不需要固定
每一个音频是一个单独的故事,虽然时期不同到不用让时期保持连贯,打破固有思维,重新建立视听循环.
从001开始到文件的个数总和结束
eg: audio.mp3 -> 001.audio.mp3
-> 初步判断:
使用单层两个for循环
一个用于各个原文件的名称获取
一个用于各个前缀的获取
最后,原文件=前缀.原文件
转换完毕.
-> 修改以上判断:
全局变量用于前缀表示
一个循环用于遍历文件名称
循环中使用全局变量自增获得下一个前缀
组合成最终的文件名称
-> 小插曲
ToDo文件夹中糅杂了n多如下类别的音频文件:
1> 诗人.mp3
2> 26内功.mp3
3> 24.术语.mp3
3> mv -vf ??.*.mp3 ../DOING/ #将以数字和点儿开头的移动到DOING文件夹中
1> mv -vf [^0-9]*.mp3 ../DONE/ #将不以数字开头的那些个文件移动到Done文件夹中
2> 剩下的就是以数字开头没有点儿的文件.
将所有文件的文件名的数字前缀和数字加点儿前缀去掉
1> ToDo.list中的各种文件
2> DOING.list中的各种文件
示例:
$ vim rllr
#-------ToDo.list中的各种文件-------
#[0-9][0-9]xxx.mp3
function DoubleNumber() {
OriAudioName=$1
AftAudioName=${OriAudioName:2}
mv -f $OriAudioName $AftAudioName
}
for audioName in `ls`
do
DoubleNumber $audioName
done
#-------DOING.list中的各种文件-------
#[0-9][0-9].xxx.mp3
function DoubleNumberDot() {
OriAudioName=$1
AftAudioName=${OriAudioName:3}
mv -f $OriAudioName $AftAudioName
}
for audioName in `ls`
do
DoubleNumberDot $audioName
done
#------- 批量重命名语录 -------
#./rename *
PREFIX=1
for audioName in `ls`
do
echo ""
echo "AudioName: " $audioName
LEN=`expr length $PREFIX`
if [ $LEN == 1 ]; then
_PREFIX=00$PREFIX
elif [ $LEN == 2 ]; then
_PREFIX=0$PREFIX
elif [ $LEN == 3 ]; then
_PREFIX=$PREFIX
else
echo "Audio File Don‘t have too many."
fi
mv -f $audioName `echo "$_PREFIX".$audioName`
PREFIX=$(($PREFIX + 1))
echo $PREFIX
done
说明:
./rllr
进入Audio音频所在目录执行此脚本