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:
*.wav
permite 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.wav
e assim por diante como o comando real.- Na
's/^(.*)$/A$1/'
verdade, is és/PATTERN/REPLACEMENT
uma 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 -nv
as opções são para verbose -v
e simulação -n
. Se você estiver satisfeito com o teste, remova -n
para 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