最好的快餐式脚本工具

2011-09-07 20:30:37 +08:00
 obiwong
最近要对一堆文件进行重命名操作,文件名是类似于

xxx01.img
xxx02.img
xxx03.img
...

的形式,要改成

01.img
02.img
03.img
...


第一个念头是写一个脚本搞定这件小事,伪代码大概是下面这个样子:

for-each file in all-files-in-current-dir do
.. basename = get-basename-of( file )
.. get-digital-part-of-filename( basename )
.. rename(only-digital-filename, basename)

然后我估了一下写成 bash 或 python 脚本要花的时间,写代码大概用5分钟左右,调试大概用5分钟左右,共10分钟。还有更快的方法吗,于是我想到了emacs,用emacs的按键宏完成这件事,从"写"脚本到运行完脚本,只花了不到1分钟。

我知道还有其它多得数不清的编辑器也有按键宏录制功能,但它们只是一个编辑器,仅此而已。Emacs不止是一个编辑器,它还是一个操作系统,操作系统无所不能,因此Emacs的按键宏功能也无所不能。

录制这个键盘宏只需要不到20秒的时间:

1. 进入dired模式,定位到要改名的第一个文件处
2. C-x (
3. C-SPC C-f C-f M-w R C-y .jpg CR C-n
4. C-x )

定义就完成了,要执行100次的话: C-u 100 C-x e。

宏相对于脚本的优势在于,录制宏的过程既是"写"脚本的过程,也是调试脚本的过程,并且这一切都是可视化的: 你能直接看到你的每一步操作会带来什么样的效果。

宏还有一个优点就是编写简单,只需要花几十秒就能录制出一个实用的工具,用完直接把它扔掉。既然录一个宏只需要十几秒,那为什么还要花时间给它加注释、取名子、然后归档到自己的脚本工具箱里去呢?

当然,相对于脚本键盘宏有很多缺点: 不可读、不能编辑、只能处理简单逻辑等,这有点象快餐: 不象正餐那样有营养、好吃,但能为你成倍地节约时间和精力,让你把时间精力放到更有价值地事上去。
6692 次点击
所在节点    Emacs
24 条回复
obiwong
2011-09-11 00:26:09 +08:00
@Kymair "很多种其他的方式都是几秒钟解决问题" 你是在写几行脚本,调试,运行后才得出这样的结论的吗?

@dreampuf 我提的问题你还没回答我呢

@ssword 就事论事,别搞人身攻击。
ssword
2011-09-11 08:03:54 +08:00
@obiwong 幼稚。
obiwong
2011-09-13 12:13:12 +08:00
@ssword 要证明自己对,贬低别人不是个好办法。另外,说话故意省略主谓语也不是,这只会让人觉得你大脑额叶或颞叶受损
obiwong
2011-09-13 12:27:47 +08:00
@ssword 如果您真的是额叶颞叶功能性缺失,我为我的无意冒犯致以诚挚的歉意,真的,我不歧视残疾人

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/17838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX