¿Cambiar nombre en masa, cambiar sufijo?

¿Cambiar nombre en masa, cambiar sufijo?

¿Cómo puedo reemplazar de forma masiva el sufijo de muchos archivos?

tengo muchos archivos como

  • NameSomthing-min.png
  • NameSomthing1-min.png
  • NameSomthing2-min.png

Me gustaría cambiarlos todos a

  • NameSomthing.png
  • NameSomthing1.png
  • NameSomthing2.png

es decir, eliminar los caracteres -mindel nombre. ¿Cómo haría esto?

Respuesta1

Este script puede ayudar:

for file in *-min.png; do
    echo mv "$file" "${file%-min.png}.png"
done

Elimine el eco para ejecutar realmente el comando.

Respuesta2

Eso depende de tu caparazón. Yo uso zsh, y esta es la forma en que lo hago:

for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done

Le recomiendo consultar la página de manual de su shell y consultar una sección similar a "expansión de parámetros" (como se llama en elzshpágina de manual).

También hay soluciones similares disponibles para bashotros shells (no especificó cuál usa).

Tenga en cuenta que su solución particular siempre depende de los datos y su objetivo. Si tiene el '-' como separador entre el nombre y el sufijo del que desea deshacerse, este es el camino a seguir. De lo contrario, es posible que desees adaptar un poco la expansión de parámetros.

información relacionada