He estado organizando mucho mis archivos usando comandos de terminal (sobre todo para seguir aprendiendo sobre la terminal). He aprendido a renombrar en masa en la terminal, por ejemplo, a sustituir todos los guiones bajos por espacios, a cambiar en masa las mayúsculas y minúsculas, etc.
Lo que estoy tratando de hacer ahora es insertar un carácter, o un conjunto de caracteres, ya sea en un lugar específico en el nombre del archivo o condicionalmente.
Esencialmente estoy tratando de añadir un guión "-" entre el número de pista y el título de una lista de archivos de audio.
Así que donde tengo:
"01 Primera pista.mp3"
"02 Second Song Title.mp3"
"03 Tercero.mp3"
"04 Cuarto y último.mp3"
Me gustaría reemplazar el " " en la tercera posición para que sea " - ", dejando:
"01 - Primera pista.mp3"
"02 - Second Song Title.mp3"
"03 - Third Thing.mp3"
"04 - Fourth and Final One.mp3"
¿Existe una forma de añadir un carácter de forma condicional? Por ejemplo, ¿comprobar si hay un número (cualquier cosa entre 0-9), y reemplazar el carácter justo después con otro carácter? Lógicamente: for i in *; if $i === "0-9" and + === " " replace + with " - " .... something like that?
Como alternativa, ¿podría señalar la tercera posición del nombre del archivo e insertar "- "?
El problema de sustituir simplemente TODOS los " " por " - " es que esto sustituiría cada espacio del nombre del archivo por un guión.
¿Quizás haya una forma de tener en cuenta sólo la primera instancia del " " en el nombre del archivo e ignorar las instancias posteriores?
Pero me gustaría saber si hay una forma de reemplazar caracteres condicionalmente. He estado buscando en Google con:
"terminal bulk replace character condicional"
"nombre de archivo de lote unix condicional"
y similares, pero hasta ahora sólo he encontrado la eliminación/reemplazo de caracteres, o la simple anexión (es decir, reemplazar todas las X por Y, o para cada archivo, anexar un número secuencial al principio).
Muchas gracias.