我有一组按以下方式命名的文件:
_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
- 指向第一个捕获的组