首先我的资源文件名称如下:
Manual Book Vandroid S5i(1219)_页面_01.jpg
Manual Book Vandroid S5i(1219)_页面_02.jpg
Manual Book Vandroid S5i(1219)_页面_03.jpg
。。。
其中这种文件有很多。
目标格式是:Manual_01.jpg,然后在网上找了相关的文档,发现有这方面的东西,经过最终的尝试,linux下的bash脚本写成如下:
for file in Manual*;do mv "$file" "${file/ Book\ Vandroid\ S5i(1219)_页面 /}"; done
可以成功的运行。
有几个注意点:
A.如果字符串中有空格,请用‘\ ’代替(不包含单引号),
下面来解析一下这个脚本。
for file in Manual*;-------------for表示一个循环,例如java或C语言中的for关键字,’Manual*‘表示文件夹下文件名称以字符‘Manual’开头的所有文件,循环给file 变量赋值。
mv----表示一个命令,详细信息自己$man mv;
“$file” 表示取变量file所指向的文件,${file/oldstring/newstring},oldstring表示将要替换的字符串,newstring表示用了替换的字符串,这里我们为空(无字符)。
最后其它网站有#%的使用,但现在还未明白,如果你知道,可以回复一下,先谢谢!
2013.12.31
现在还遇到一个问题,就是文件的名称都是数字,而且有规律的异常递增,比如:21.jpg,22.jpg,23.jpg。。。35.jpg
当然我们需要的目标文件是1.jpg,2.jpg,3.jpg.....15.jpg
所以我们将这些名称减去20就可以了,但是、但是,这个名称是一个字符串,所以不能这么直接减,得去将字符串转换为数字。
嗯,以上是一个思路。这个工作量应该非常复杂,等你把这个东西实现将是在2014年的夏天。但是如果我们只命名一个文件的命令是:
mv 21.jpg 1.jpg
那么我们能否通过其他的方法批量生产这种有规律的命令呢?有!通过excel来完成。
mv 46 | .jpg 1.jpg | mv 46.jpg 1.jpg |
mv 47 | .jpg 2.jpg | mv 47.jpg 2.jpg |
mv 48 | .jpg 3.jpg | mv 48.jpg 3.jpg |
mv 49 | .jpg 4.jpg | mv 49.jpg 4.jpg |
mv 50 | .jpg 5.jpg | mv 50.jpg 5.jpg |
mv 51 | .jpg 6.jpg | mv 51.jpg 6.jpg |
mv 52 | .jpg 7.jpg | mv 52.jpg 7.jpg |
mv 53 | .jpg 8.jpg | mv 53.jpg 8.jpg |
mv 54 | .jpg 9.jpg | mv 54.jpg 9.jpg |
mv 55 | .jpg 10.jpg | mv 55.jpg 10.jpg |
mv 56 | .jpg 11.jpg | mv 56.jpg 11.jpg |
mv 57 | .jpg 12.jpg | mv 57.jpg 12.jpg |
mv 58 | .jpg 13.jpg | mv 58.jpg 13.jpg |
mv 59 | .jpg 14.jpg | mv 59.jpg 14.jpg |
mv 60 | .jpg 15.jpg | mv 60.jpg 15.jpg |
mv 61 | .jpg 16.jpg | mv 61.jpg 16.jpg |
mv 62 | g |
再来给大家讲解一下如何生产这个列表:
第1列,输入mv 46然后下拉一列。
第2列,输入.jpg 1.jpg然后下拉,后面的数字都会自动增加的。
第三列呢,是将前两列合并起来 =""&B89&""&C89&""
最后复制第三列,在bash窗口黏贴就可以了。
干完这件事,真有成绩感,linux还真好,能完成很多重复的工作。