【发布时间】:2014-06-02 14:32:49
【问题描述】:
所以,我的问题是:如何在文件名中的前缀数字上添加 +1?
我们的目标是重命名多个文件,以便它们从此开始:
1_loremipsum_and_stuff_2013.pdf
2_loremipsum_and_stuff_2013.pdf
3_loremipsum_and_stuff_2013.pdf
4_loremipsum_and_stuff_2013.pdf
13_loremipsum_and_stuff_2013.pdf
18_loremipsum_and_stuff_2013.pdf
19_loremipsum_and_stuff_2013.pdf
20_loremipsum_and_stuff_2013.pdf
到这里:
2_loremipsum_and_stuff_2013.pdf
3_loremipsum_and_stuff_2013.pdf
4_loremipsum_and_stuff_2013.pdf
5_loremipsum_and_stuff_2013.pdf
14_loremipsum_and_stuff_2013.pdf
19_loremipsum_and_stuff_2013.pdf
20_loremipsum_and_stuff_2013.pdf
21_loremipsum_and_stuff_2013.pdf
我对终端完全没有经验。我找到了examples for removing prefix number。它工作正常,但是当我尝试使用正则表达式替换某些内容时,我无法非常接近。
因此,在第一次尝试在终端中正确正则表达式失败后,我想我会在 javascript 中尝试一下。
我能够得到它working in javascript /[0-9]*(?=_)/.
所以,我对终端的最佳猜测是这个,除了它不太好用。:
cd {TESTFOLDER}
REGEX=[0-9]*(?=_)
for name in *; do mv -v "$name" "${name/$REGEX/$(( ${name/$REGEX}+1 ))}"; done
【问题讨论】:
-
对于正则表达式,您可能应该匹配行或字符串的开头,而不是使用前瞻,例如^[0-9]*
-
@user3334690 我可能做错了,但似乎没有太大区别。
标签: regex macos terminal batch-processing