Usando renomear para renomear letras maiúsculas e minúsculas e adicionar um caractere

3

No linux, usando rename para renomear vários diretórios. Eu quero renomear os diretórios começando com caracteres maiúsculos para minúsculas e adicionar um caractere especial, digamos _ antes da primeira letra.

Por exemplo, quero renomear Myfile para _myfile

O melhor que consegui até agora é:

rename -n 'y/[A-Z]/[a-z]' *

Mas quando adiciono meu caractere a essa expressão regular, recebo o seguinte erro:

rename -n 'y/[A-Z]/_[a-z]' *
Replacement list is longer than search list at (eval 90) line 1.

Como posso adicionar o caractere especial à expressão regular?

    
por aze 09.11.2016 / 14:46

1 resposta

2

Faça:

rename -n 's/^([A-Z])/_\L$1/' */
  • ^([A-Z]) corresponde a qualquer letra maiúscula no início e coloca no grupo capturado 1

  • Na substituição, estamos em minúsculas ( \L ) o grupo capturado 1 com perpendendo _

  • */ corresponde apenas aos diretórios

Remova -n da ação real de renomeação:

rename 's/^([A-Z])/_\L$1/' */
    
por 09.11.2016 / 14:55

Tags