重命名文件并为多年电影添加括号

时间:2020-11-05 09:40:38

标签: regex rename

所以基本上我想要实现的是重命名我的电影文件夹名称,并在年份中加上括号(也可以用空格替换点)

我在Regex上使用rename命令

这是电影名称的方式:

La.chambre.des.officiers.2001
The.2nd.2020
The.Song.of.Names.2020

这就是我希望他们成为的方式:

La chambre des officiers (2001)
The 2nd (2020)
The Song of Names (2020)

我使用了以下正则表达式:

Match: (.+ )(\d\d\d\d)

Replace: \1(\2)

最后,这是我的重命名命令

rename -v 's/(.+ )(\d\d\d\d)/\1(\2)/'

不幸的是什么都没发生

该如何解决。谢谢

PS:我正在寻找一种纯CLI解决方案,而不是任何GUI解决方案

1 个答案:

答案 0 :(得分:1)

下面是通过regex101.com的链接尝试解决该问题的示例

这将替换句点

Match = '/[\s\.]/m';
Replace = ' '

https://regex101.com/r/Hn01d7/1/

这将在我们这一年加上括号

Match = /(.)(\d\d\d\d)/gm;
Replace = `\1(\2)`;

https://regex101.com/r/mRX88I/1

我目前不在* nix机器上,因此无法尝试。

但是要在CLI中做到这一点,

像这样使用rnm

rnm -y -rs '[Regex]' [FileLocation]

-y将在不询问的情况下确认所有更改 -rs替换字符串命令 “ [Regex]”是您的正则表达式声明 '[FileLocation]是您所有目录所在的位置。全部使用./*

例如:rnm -y -rs ''s/(.+ )(\d\d\d\d)/\1(\2)/'' ./*

使用下面的链接作为参考;

https://neurobin.org/docs/unix/rnm/bulk-rename-in-linux#41-search-for-files-with-regex-and-rename