Eu gostaria de renomear uma lista de MP3 no mesmo diretório como:
001 - toto1.mp3
002 - toto3.mp3
003 - toto5.mp3
004 - toto7.mp3
005 - toto9.mp3
toto10.mp3
toto35.mp3
toto59.mp3
toto75.mp3
Eu tentei este exemplo de comando:
for i in *.mp3 ; do echo "${/[0-9]-/i}" ; done
eu tenho
bash: ${/[0-9]-/i}: bad substitution
Eu gostaria deste resultado:
toto1.mp3
toto3.mp3
toto5.mp3
toto7.mp3
toto9.mp3
toto10.mp3
toto35.mp3
toto59.mp3
toto75.mp3
Obrigado
Você definiu uma variável
i
para cada nome de arquivo no loop, mas a expansão do parâmetro espera ver o nome da variável imediatamente após o${
; em vez disso, você o colocou no final, logo antes da chave de fechamento.Como você deseja remover o texto apenas da frente do nome do arquivo, use esta sintaxe:
que removerá quaisquer 3 dígitos iniciais seguidos por traço e espaço.
Mencione todos os nomes de arquivo no arquivo test.txt
O comando a seguir procurará arquivos com problemas e os renomeará com o nome adequado