菜鸟问题。按照这个答案Move last part of filename to front,我正在尝试做同样的事情,除了我的案例中的所有文件都包含方括号。
我想要的是将标题移动到括号的另一侧(保留文件扩展名),因此:title ![s2_e2].mp4
重命名为: [s2_e2]title !.mp4
第一部分可能包含感叹号和空格,但没有其他需要转义的字符。
我想出了这个,但它只删除文件名,直到第一个方括号:rename -n 's/^.*\[//' *
我在正确的道路上吗?我如何在 Linux 上使用 perl 重命名工具来完成它?
谢谢!
如果我理解正确,您需要将方括号内的任何文本移动到文件名的开头。假设您在文件名中只有一组方括号,您可以执行以下操作:
在您的示例上运行它会给出:
我会在这里使用
zsh
'szmv
:(如果文件名中有一对以上的
[
/]
,它将从最右边[
至少有一个]
后面的对移动到最右边]
。例如,在 中[a [b c]] [d [e]]
,它会移动[e]]
)这些天有很多 perl 的变种
rename
和很多陷阱,很难跟上它们的步伐。zmv
也实施了自己的一些保障措施。它会在开始进行任何重命名之前检查任何冲突。