精品技术论坛

精品技术论坛 (https://bbs.et8.net/bbs/index.php)
-   『软件使用』 (https://bbs.et8.net/bbs/forumdisplay.php?f=17)
-   -   【求助】不足连续三个数字用0补足 (https://bbs.et8.net/bbs/showthread.php?t=940894)

thuer 2008-07-29 13:22:57

【求助】不足连续三个数字用0补足
 
英语口语365-1-19.mp3
英语口语365-20-38.mp3
英语口语365-39-56.mp3
英语口语365-57-75.mp3
英语口语365-76-93.mp3
英语口语365-94-111.mp3

更改为:
英语口语365-001-019.mp3
等等

请问用totalcommander可以吗?如果不行,编辑器里查找替换怎么写这个正则?

crackabc 2008-07-29 13:35:08

查找365-(/d),替换365-00(1)
查找365-(/d/d),替换365-0(1)
查找365-(/d/d/d)-(/d),替换365-(1)-00(2)
查找365-(/d/d/d)-(/d/d),替换365-(1)-0(2)
呵呵,笨办法,不知道还有没高招

crackabc 2008-07-29 13:40:13

totalcommander好像不行么

JustPro 2008-07-29 13:42:22

total的正则可以呀

可能要多替换几次
1、-(\d\d)- 替换为 -0$1-
2、-(\d)- 替换为 -00$1-

不这也是笨方法啦:)

thuer 2008-07-29 13:48:43

引用:

作者: JustPro (文章 9770351)
total的正则可以呀

可能要多替换几次
1、-(\d\d)- 替换为 -0$1-
2、-(\d)- 替换为 -00$1-

不这也是笨方法啦:)

这还只处理了中间的数字,
比如:英语口语365-1-19.mp3,除了1变成001,19还需要变成019

crackabc 2008-07-29 13:50:50

我也来问一下,有什么好的文件重命名工具,要尽量完整支持正则的。
powergrep好像只能替换文件里的东西。

crackabc 2008-07-29 13:55:13

引用:

作者: thuer (文章 9770360)
这还只处理了中间的数字,
比如:英语口语365-1-19.mp3,除了1变成001,19还需要变成019

那就用[],呵呵。

recyclebin 2008-07-29 14:07:54

我笨,我把文件名导到excel里面解决了再批处理更名。

thuer 2008-07-29 14:14:59

引用:

作者: crackabc (文章 9770342)
查找365-(/d),替换365-00(1)
查找365-(/d/d),替换365-0(1)
查找365-(/d/d/d)-(/d),替换365-(1)-00(2)
查找365-(/d/d/d)-(/d/d),替换365-(1)-0(2)
呵呵,笨办法,不知道还有没高招

这个可以,呵呵,可以解决问题,期待更佳方案,欢迎大家探讨。
我在emeditor里用
查找: -(\d{1,2})([^\d])
替换: -0\1\2
得连按三下replace all才行,为何不能一次替换完呢?
在totalcommander里也是这样,得重命名好几次,一样的规则

crackabc 2008-07-29 14:28:05

拖把更名器正则功能很弱,但有一点好,能够导入要更改的文件名,这样就能按文件名的顺序来重命名了,不知道其他有没什么软件也能实现这个功能。

thuer 2008-07-29 14:38:16

引用:

作者: crackabc (文章 9770437)
拖把更名器正则功能很弱,但有一点好,能够导入要更改的文件名,这样就能按文件名的顺序来重命名了,不知道其他有没什么软件也能实现这个功能。

total commander语法稍有不同,但也很强大:
查找:-(\d{1,2})([^\d])
替换:-0$1$2
重复三次。

lucida 2008-07-29 15:03:37

取巧的办法,假如非要一行解决


$ awk 'BEGIN { FS = "-" } ; { printf("mv %s %s-%03d-%03d.mp3\n",$0, $1,$2,$3) }
' < test.txt > rename.cmd

$ cat rename.cmd
mv 英语口语365-1-19.mp3 英语口语365-001-019.mp3
mv 英语口语365-20-38.mp3 英语口语365-020-038.mp3
mv 英语口语365-39-56.mp3 英语口语365-039-056.mp3
mv 英语口语365-57-75.mp3 英语口语365-057-075.mp3
mv 英语口语365-76-93.mp3 英语口语365-076-093.mp3
mv 英语口语365-94-111.mp3 英语口语365-094-111.mp3

$ cat test.txt
英语口语365-1-19.mp3
英语口语365-20-38.mp3
英语口语365-39-56.mp3
英语口语365-57-75.mp3
英语口语365-76-93.mp3
英语口语365-94-111.mp3

thuer 2008-07-29 16:51:01

引用:

作者: crackabc (文章 9770364)
我也来问一下,有什么好的文件重命名工具,要尽量完整支持正则的。
powergrep好像只能替换文件里的东西。

貌似就是total commander啦

borwide 2008-07-29 19:09:53

引用:

作者: lucida (文章 9770505)
取巧的办法,假如非要一行解决

[shell]
$ awk 'BEGIN { FS = "-" } ; { printf("mv %s %s-%03d-%03d.mp3\n",$0, $1,$2,$3) }
' < test.txt > rename.cmd

$ c......

呵呵,老大把awk都祭出来了。这个超难用,不过也是超强。

borwide 2008-07-29 19:13:24

Flash Renamer 6.1 的 Zero Padding功能能够一步完成 。


所有时间均为北京时间, 现在的时间是 20:58:51.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号