Yem*_*lat 4 linux debian command-line-interface rename batch
我在服务器上有一个文件夹,其中包含每天创建并按日期命名的目录,如下所示:
07-06-14
08-06-14
09-06-14
Run Code Online (Sandbox Code Playgroud)
等等。
在某些时候,我决定首选命名格式如下:2014-06-07 并且新文件夹使用该格式创建。所以现在该文件夹包含:旧格式的目录和新格式的目录。
如何将旧格式的目录批量重命名为新格式?
我试过这个: rename -n 's/(\d{2})\-(\d{2})\-(\d{2})\20$3-$2-$1//' *
但它抛出错误:
Use of uninitialized value $2 in regexp compilation at (eval 1) line 1
你的正则表达式坏了,我想你的意思是这样的:
's/(\d{2})-(\d{2})-(\d{2})/20$3-$2-$1/'
Run Code Online (Sandbox Code Playgroud)
即连字符不需要转义,第二个斜线不合适。
请注意,通过此替换,您还将使用新命名方案重命名文件。您可能想要锚定正则表达式。这样的事情应该工作:
rename -n 's/^(\d{2})-(\d{2})-(\d{2})$/20$3-$2-$1/' *
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4369 次 |
| 最近记录: |