问题

问题

我有一组按以下方式命名的文件:

_9978967868768763ghjgj7598983678hjva_week1-6.pdf
_78637832bdsjh275637bkkaww786b_week12-32.pdf
8786767867868978713bkwkhjhkjqw_week1-622.pdf
867813567bdjsbgbadsyu6712353125561235_week100-6.pdf

我有兴趣利用rename获取名称的实用程序:

 week1-6.pdf
 week12-32.pdf
 week1-622.pdf
 week100-6.pdf

实现这一点的正则表达式可能是:

(.*)(week.*)

效果很好(正则表达式101):

在此输入图像描述

问题

如何将此语法转换为重命名的格式表达式:

s/expr1/expr2/[gi]

实际上,我想删除第一组。

笔记

mv我对使用或基于解决方案不感兴趣sed。我只想使用rename 实用程序。

答案1

尝试这个,使用正确的方法:)只是纠正你的命令(你非常接近......):

rename 's/(.*)(week.*)/$2/' *.pdf

或简化:

rename 's/.*(week.*)/$1/' *.pdf

答案2

prename方法:

prename -n 's/.*_(week.*$)/$1/' *_week*.pdf
  • $1- 指向第一个捕获的组

相关内容