Anexar carta antes do nome anterior na pasta. (Renomear) [duplicado]

1

Eu tenho várias pastas e cada uma tem cerca de 175 arquivos nela. 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 anexar Cartas nos nomes de arquivos anteriores.

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

Versão do Ubuntu é 16.10

    
por Adnan Ali 06.06.2017 / 23:50

3 respostas

3

Existem muitas maneiras, a minha própria escolha seria um loop 'for':

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

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

    
por andrew.46 07.06.2017 / 00:02
3

Comando User prename :

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

A maneira como isso é simples:

  • *.wav permite que o shell expanda o curinga para a lista de todos os arquivos que terminam com .wav . Quando o shell executa o comando completo, o computador verá prename -nv 's/^(.*)$/A/' 1.wav 2.wav 3.wav e assim por diante como o comando real.
  • A expressão 's/^(.*)$/A/' é, na verdade, s/PATTERN/REPLACEMENT regular com o agrupamento (.*) , o que nos permite agrupar todo o nome do arquivo desde o início ^ até o final $ e se referir a ele como .

Observe que as opções -nv são para -v e% -c%% de execução seca. Se você estiver satisfeito com a execução do teste, remova -n para aplicar renomeação real.

    
por Sergiy Kolodyazhnyy 06.06.2017 / 23:55
2

Usando rename :

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