cambiar el nombre de lote de múltiples dígitos despojados de mp3


1

Hola alguien podria ayudarme Estoy tratando de quitar los dígitos iniciales de varios archivos mp3 para que "01 some_file.mp3" se convierta en "some_file.mp3" si alguien me pudiera mostrar cómo hacerlo con zmv, eso sería genial


¿Hay un espacio real entre los dígitos y el nombre del archivo?
Nevin Williams

Respuestas:


0

Un script como este podría funcionar:

for f in *; do
    mv "$f" "${f:3}"
done

Esto eliminará los primeros 3 caracteres del nombre de archivo (los dos números y el espacio).

O algo como esto:

for f in *; do
    mv "$f" "$(printf "$f" | cut -d' ' -f2-)"
done

Si hay un espacio en blanco real entre el número y el resto del nombre. Esto imprimirá todo, desde el espacio en blanco hasta el final del archivo.

Tenga en cuenta que esto solo funcionará para un número fijo de dígitos (primer ejemplo) o si hay un espacio real entre los dos campos (segundo ejemplo), si el caso no se aplica a ninguna de las soluciones mencionadas, aún puede contar con coincidencia de expresiones regulares:

for f in *; do
    mv "$f" "$(printf "$f" | sed s/[[:digit:]]*\ *//)"
done

Esto funcionaría para cualquier número de dígitos y / o espacios iniciales. Por ejemplo:

echo '0001     hellow  aasa 1212.mp3' | sed s/[[:digit:]]*\ *//

Imprimirá

hellow  aasa 1212.mp3

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.