GNU/Linux >> Tutoriales Linux >  >> Linux

¿Renombrar archivos por lotes a una numeración secuencial?

Estoy tratando de renombrar por lotes un montón de archivos en mi shell, y aunque hay mucho material al respecto en Internet, parece que no puedo encontrar una solución para mi caso específico.

Tengo un montón de archivos que tienen (lo que parece ser) un "id de marca de tiempo":

abc_128390.png
abc_138493.png
abc_159084.png
...

que me gustaría cambiar por un contador:

abc_001.png
abc_002.png
abc_003.png
...

Mi (bastante) ingenuo enfoque sería algo como:

mv abc_*.png abc_{001..123}.png

Además, no pude encontrar una manera de hacer que funcione con un for -bucle.

FWIW, desafortunadamente rename no está disponible en este sistema en particular.

¡Cualquier consejo sería muy apreciado!

Respuesta aceptada:

No puedo pensar en una solución que maneje incrementar el contador de una manera más inteligente, pero esto debería funcionar:

i=0
for fi in abc_??????.png; do
    mv "$fi" abc_$i.png
    i=$((i+1))
done

Debería ser seguro usar abc_*.png porque se expande antes del primer mv se ejecuta alguna vez, pero puede ser útil ser muy específico en el sentido de que solo desea archivos con una marca de tiempo de seis caracteres al final.


Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. ¿Cómo cambiar el nombre de muchos archivos usando una expresión regular?

  3. Metamorphose 2:cambie el nombre por lotes de sus archivos y carpetas en Linux

  4. Optimización recursiva de archivos PNG

  5. Linux cambia el nombre de los archivos a mayúsculas

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

8 métodos para cambiar el nombre de varios archivos a la vez en Linux

Cómo convertir por lotes archivos PDF en Linux

Cómo cambiar el nombre de los archivos en Ubuntu 20.04

Extensión de cambio de nombre de varios archivos de Linux