小例子: 语录文件重命名(mv + rename)

分析:

语录下载时是按时期打包的;

全部解压到一个文件夹时,关于编号问题,操作起来很不方便;

特此给语录重新编号;

无需在意原先时期编号问题;

重新建立惯性思维模式;

统计语录文件总个数用来表示循环中的前缀变量

-> 重命名规则:

保留源文件的信息到文本中

给音频文件添加前缀

命名时名字的顺序不需要固定

每一个音频是一个单独的故事,虽然时期不同到不用让时期保持连贯,打破固有思维,重新建立视听循环.

从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音频所在目录执行此脚本

时间: 2024-10-18 15:47:49

小例子: 语录文件重命名(mv + rename)的相关文章

Linux rename命令文件重命名的用法汇总

Linux命令中的rename命令主要用于给文件重命名,与mv命令有些类似,但rename可以对批量文件进行重命名,而mv命令则只能对单个文件重命名,下面就给大家详细介绍下Linux rename命令的使用方法吧. Linux的 rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了,由于历史原因,在Perl语言大红大紫的时候,Linux的工具开发者们信仰Perl能取代C,所以大部分工具原来是C

Linux 重命名命令 rename 和 mv 详解

刚学linux时,对文件重命名脑袋里立马呈现了rename命令,但却用不起来.G了一下,仍是一知半解,而且发现很多人对它也是很陌生!还有部分童鞋说直接使用mv,哎,mv还真管用,但老感觉命令名咋就那么不顺眼呢! 我们来man下吧,先man mv: mv - move (rename) files mv不仅有转移的功能,确实有重命名的含义,语法简单可理解为: mv [path/]oldfilename [path/]newfilename 但只能是重名为当个文件. 我们再来man rename:

批量创建用户与批量文件重命名

title: 批量创建用户与批量文件重命名 tags: 批量,用户,创建,重命名 批量创建用户与批量文件重命名 1. 批量创建用户 如果需要批量创建用户,且用户名为stu01-stu10,用户密码为随机的10位密码. 1.1 分析解答 如果用户名为stu01的话,我们可以采用for循环,直接变量范围为01-10,密码随机的话我们可以采用系统默认的随机变量RANDOM,因为默认的RANDOM只有5位数字,因此我们可以给它md5加密,然后取其中的8位字符当做密码.当然我们也可以不用循环,直接使用命令

Linux环境给文件重命名

Linux环境给文件重命名时,如果重命名后的文件名称与当前路径下已存在的文件名称相同,则重命名的文件会覆盖相同名称的文件内容: 例如:新建文件testfile1,内容为mytest: 新建文件testfile2,内容为test: 执行mv testfile1 testfile2  命令后,当前路径只有一个testfile2文件,内容为mytest; 测试同名文件到达处理机制时要注意:

Linux下文件重命名、创建、删除、修改及保存文件

一.重命名(更名) linux 给文件改名的命令是mv命令 mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中.该命令等同于DOS系统下的ren和move命令的组合.它的使用权限是所有用户. 格式mv [options] 源文件或目录 目标文件或目录.主要参数[options]-i:交互方式操作.如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件. -f:禁止交互操作.mv操作要覆盖某个已有的目标文件时不给任何指示,指定

巧妙地解决Java文件重命名失败的问题

一.问题描述 1.大家在用log4j时,可能会遇到下面的一个报错信息: Failed to rename [/opt/proj.log] to [/opt/proj.log.2014-03-20]. 这个算是log4j.DailyRollingFileAppender的一个BUG,网上很多修改方案,不过我能搜到的,都不理想. 2.一般性问题:文件重命名失败 详细的内容可以参见论坛的帖子:http://bbs.csdn.net/topics/330195396 关键内容如下: 我也遇到了和LZ相同

Ubuntu Linux 批量修改图片大小以及文件重命名

0x00 本文属于随笔, 仅供作者学习记录. 0x01 批量修改图片大小: [email protected]:~/$ find ./ -name '*.jpg' -exec convert -resize 220X520! {} {} \; 备注: 上述命令中, find 路径 -name 匹配.jpg后缀的文件 -exec 对find结果执行convert命令 后面是convert参数, 如果没有安装convert, sudo apt-get install convert安装即可. -re

Python实例31[批量对目录下文件重命名]

经常会遇到下载的文件或电子书,名字中间都包含了一些网址信息,实际使用中由于名字太长不方便,下面的脚本使用正则表达式来对目录下的所有文件重命名:例如: 修改前:[大家网]Mac OS X for Unix Geeks[www.TopSage.com].mobi修改后:Mac OS X for Unix Geeks.mobi python代码如下 import osimport re def rename_dir(dir,regex,f):  if not os.path.isdir(dir) or

用Python写的批量文件重命名

  有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重命名.拷贝下面的代码到待批量命名的文件夹下,保存为xx.py直接运行,程序会提示需要批量命名的扩展名,以及重命名时的文件前缀. # -*- coding: cp936 -*- """ Created on Wed Jun 25 16:24:23 2014 @author: Adm