所以基本上我想要实现的是重命名我的电影文件夹名称,并在年份中加上括号(也可以用空格替换点)
我在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解决方案
答案 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