Anexe a letra antes do nome anterior na pasta. (Renomear)

Anexe a letra antes do nome anterior na pasta. (Renomear)

Eu tenho várias pastas e cada uma contém cerca de 175 arquivos. nomes de arquivos são como

1.wav
2.wav
3.wav
......
175.wav 

Eu tenho que renomeá-los como

A1.wav
A2.wav
A3.wav
......
A175.wav 

Em outras palavras, tenho que acrescentar letras aos nomes de arquivos anteriores.

Eu estou querendo saber se existe uma maneira fácil de fazer isso.

A versão do Ubuntu é 16.10

Responder1

Há muitas maneiras, minha escolha seria um loop 'for':

for f in *.wav ; do mv "$f" "A$f" ; done

Isso é simples e facilmente modificado para outras necessidades...

Responder2

Comando do usuário prename:

$ prename -nv 's/^(.*)$/A$1/' *.wav                    
1.wav renamed as A1.wav
2.wav renamed as A2.wav
3.wav renamed as A3.wav

A forma como isso é lido é simples:

  • *.wavpermite que o shell expanda o curinga para listar todos os arquivos que terminam com .wav. Quando o shell executa o comando completo, o computador verá prename -nv 's/^(.*)$/A$1/' 1.wav 2.wav 3.wave assim por diante como o comando real.
  • Na 's/^(.*)$/A$1/'verdade, is é s/PATTERN/REPLACEMENTuma expressão regular com agrupamento (.*), que nos permite agrupar o nome completo do arquivo do início ^ao fim $e referi-lo como $1.

Observe que -nvas opções são para verbose -ve simulação -n. Se você estiver satisfeito com o teste, remova -npara aplicar a renomeação real.

Responder3

Usando rename:

rename 's/([0-9]+).wav/A\1.wav/' *.wav
  • s/SEARCH-FOR/REPLACE-WITH/ within-this-files
  • ([0-9]+)contém a seção numérica, então podemos usá-la novamente usando \1.
  • A\1.wav: A+ (seção numérica) +.wav

informação relacionada