Cambiar el nombre de los archivos mp3 a un patrón

Cambiar el nombre de los archivos mp3 a un patrón

Tengo una lista de nombres similares como este:

/A/B/C/D/E/F/filename_album1-003.mp3

es más como un álbum\d+

Me gustaría cambiarlo a algo como

/A/B/C/D/E/F/filename_song-3.mp3

songEs solo una cadena fija.

Intenté algo como basename -s '.mp3'y luego, sed -e /_album//gpero esto omite el número ` y no elimina todo el 001 inicial. ¿Cuál es una buena manera de hacer esto?

Respuesta1

Con zsh:

$ autoload zmv # best in ~/.zshrc
$ zmv -n '(**/)(*_)*-0#(<->.mp3)' '$1$2song-$3'
mv -- A/B/foo_bar-0002.mp3 A/B/foo_song-2.mp3

eliminar -nsi está satisfecho.

Respuesta2

Prueba esto :

rename -n 's/_album1-0*/-song-/' /A/B/C/D/E/F/filename_album1-003.mp3

(retire -nel interruptor si sus pruebas están bien)

advertencia Hay otras herramientas con el mismo nombre que pueden o no ser capaces de hacer esto, así que tenga cuidado.

Si ejecuta el siguiente comando ( GNU)

$ file "$(readlink -f "$(type -p rename)")"

y tienes un resultado como

.../rename: Perl script, ASCII text executable

y que no contenga:

ELF

entonces esta parece ser la herramienta adecuada =)

De lo contrario, para convertirlo en el valor predeterminado (generalmente ya es el caso) en Debianun derivado como Ubuntu:

$ sudo update-alternatives --set rename /path/to/rename

(reemplace /path/to/renamela ruta de su perl's renamecomando.


Si no tiene este comando, busque en su administrador de paquetes para instalarlo ohazlo manualmente


Por último, pero no menos importante, esta herramienta fue escrita originalmente por Larry Wall, el padre de Perl.

Respuesta3

No veo de dónde sacas el nuevo nombre de la "canción", comienzas filename_album1-003.mp3y cambias a filename_song-3.mp3...

Si obtiene el nombre de la canción de la etiqueta ID3, entonces sería más fácil usar un programa que pueda cambiar el nombre de los mp3 a partir de la información de la etiqueta. Uno como easytag, mp3rename, lltag... hay varios en los repos de Debian y otros

información relacionada