Files

對組使用 Perl 的重命名

  • March 17, 2018

我有一組以下列方式命名的文件:

_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.*)

效果很好(regex101)

在此處輸入圖像描述

問題

如何將此語法轉換為重命名的格式表達式:

s/expr1/expr2/[gi]

實際上,我想刪除第一組。

筆記

我對使用mvor sed-based 解決方案不感興趣。我只想使用rename 實用程序。

試試這個,使用正確的方法:) 只是更正你的命令(你非常接近……):

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

或簡化:

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

**prename**方法:

prename -n 's/.*_(week.*$)/$1/' *_week*.pdf
  • $1- 指向第一個擷取的組

引用自:https://unix.stackexchange.com/questions/431808