Tengo una lista de mp3
archivos nombrados así:
$artist/$album ($year)/$tracknum $title.mp3
Muchas de estas pistas tienen etiquetas incorrectas o faltantes, que estoy corrigiendo mediante el uso de id3v2
y regex porque los nombres de los archivos son correctos. Aquí hay un ejemplo de cómo estoy configurando títulos:
for mp3 in *.mp3; do id3v2 -t "$(echo $mp3 | cut -d. -f1 | cut -d\ -f2-)" "$mp3"; done
(Nota: las citas están ahí porque los títulos a menudo tienen espacios, lo que hace que bash se queje a menos que se usen espacios)
Mi pregunta es esta: ¿hay una mejor manera de extraer una subcadena específica de estos archivos? En el caso de los títulos, no puedo usar grep -o
sin que también coincidan $tracknum
porque muchas pistas tienen números y espacios en los títulos (lo que significa que necesitaría "([0-9a-zA-Z ]+)"
mi patrón, que coincide con el nombre de archivo completo antes del .mp3
).
Estoy casi seguro de que hay una forma mucho mejor de hacer esto. ¿Esta ahí?
/
) antes de pasarla a cortar, pero en general fue muy útil.