大佬好,请教个问题,大约有100多个文件名如下格式的文件:
英语20201010.mp4
自动化20201011.mp4
……
现在想把上述文件名批量重命名为下列格式:
20201010英语.mp4
20201011自动化.mp4
不胜感激!
大佬好,请教个问题,大约有100多个文件名如下格式的文件:
英语20201010.mp4
自动化20201011.mp4
……
现在想把上述文件名批量重命名为下列格式:
20201010英语.mp4
20201011自动化.mp4
不胜感激!
在Emacs里打开这个目录,然后M-x dired-toggle-read-only
。然后用你喜欢的文本编辑方式编辑成你想要的样子,然后C-x C-s
。如果不熟悉Emacs的正则表达式的话,可以M-x query-replace-regexp
,然后输入^\([^0-9]*\)\([0-9]*\)\.mp4
,再输入\2\1.mp4
。
把文件名复制出来,用emacs编辑一个脚本,然后执行
操作前一定记得备份。
如果你是Windows用户,用totalcmd吧,批量改名很简单,不容易错
dired 里面 C-x C-q 可以进入 wdired 模式,然后查找替换。之后 C-c C-c .
我不知道为啥我这套按键和圣佬的不一样,我这套也是默认的。。。。
C-c C-c
也可以。C-x C-s
是保存,对于编辑一些东西之后是非常intuitive的键绑定。C-c C-c
一般是提交一个什么东西。
想比较爽的实现的话,我建议是要不用powertoys
要不用wdired
,用点正则.
首选total commander,或者wdired
费了不少功夫,终于在dired模式下批量更改了文件名!谢谢各位的帮助!
只要懂2楼写的基本正则,方法就很多了。
我常用命令行 rename
,就是个批处理文件名的 sed
型工具,然后拷入二楼的正则(稍修正符合bash下的特殊字符输入)。简单例子,把所有mp4文件名的abc都改成123,就用rename ‘s/abc/123/‘ *.mp4
。类sed,正则为基础,各种骚操作取决于你对正则的深入度。它是我最常用的命令行工具之一了。
C-c C-c
是 ivy-occur
提交的标准绑定,这个dired中的操作也是基于 ivy-occur
的;这里由于可视为“单文件”操作,所以也给绑了 C-x C-s
产生同样效果。
参考文献:(abo-abo 的博客,那里有大量好东西啊)
dired 有自带的 wdired,我现在没有在用 ivy 了,用的 selectrum,越来越多的工具都回到了 emacs 自带的。
是有些这样的感觉,自带的已经能够满足绝大部分需求!
给第一次正则在Dired中批量修改文件名的筒子们避个坑(我掉坑里起码1h):
注意你们开了all-the-icons的Dired中,这些图标本质也是字符哈,万一你的正则匹配到这些,你就会得到譬如"read-only”的bug报错。简直怀疑人生,明明我在Dired可编辑模式呀,这就是icons的锅。正则避开这些icons就好了,或者关了。
没错,我就是掉在2楼和all-the-icons联合挖的坑里了 (还是用这个例子给人布道的时候,尴尬的令人抠脚)