Usando a renomeação do Perl com grupos [duplicados]

0

Eu tenho um conjunto de arquivos chamado da seguinte maneira:

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

Interesso-me a usar o utilitário rename para obter nomes:

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

O regex para conseguir isso pode ser:

(.*)(week.*)

que funciona bem (regex101) :

Pergunta

Como faço para traduzir essa sintaxe na expressão de formato da renomeação:

s/expr1/expr2/[gi]

Com efeito, quero excluir o primeiro grupo.

Notas

Não estou interessado em usar a solução mv ou sed . Eu quero usar apenas o utilitário rename .

    
por Konrad 17.03.2018 / 19:15

2 respostas

1

Tente isso, usando o caminho correto :) apenas corrigindo seu comando (você está muito perto ...):

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

ou para simplificar:

rename 's/.*(week.*)/$1/' *.pdf
    
por 17.03.2018 / 19:23
1

prename abordagem:

prename -n 's/.*_(week.*$)/$1/' *_week*.pdf
  • $1 - aponta para o 1º grupo capturado
por 17.03.2018 / 19:23