Jump to content
  • 0

Añadir numero de orden a archivos ¡¡SOLUCIONADO!!


lupi
 Share
Followers 0

Question

Ufff cuanto tiempo sin entrar por aquí ya ni me acuerdo la última vez. Lo que me trae es una preguntita acerca de una cosilla que estoy haciendo,os pongo en situación.

 

Estoy haciendo una carpeta con karaokes y son muchos y divididos en carpetas en categorías y me gustaría añadir al principio de cada archivo un número de orden tipo 01 Nombre.extensión. Después de añadir la numeración quiero hacer un listado con todos los archivos ya numerados en un archivo de texto para luego imprimir y tenerlo todo más ordenado para que a la hora de buscar sea más fácil localizarlos. se que con ls>archivo.txt hago el listado, pero me he atrancado a la hora de añadir dichos números de orden a todos los archivos, hacerlo a mano sería un suplicio por eso busco si hay algún comando que me lo haga o algún parámetro de ls que lo haga también, no lo se, he estado buscando comandos y leyendo al man de algunos pero la verdad saco poco en claro.

 

Muchas gracias y un abrazo para los integrantes del foro

 

Lupi

Edited by lupi
Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

A ver si te ayuda → https://serverfault.com/questions/397762/how-to-make-folders-00-99-with-a-single-command-in-ubuntu/397768

https://unix.stackexchange.com/questions/48750/creating-numerous-directories-using-mkdir

(prueba los comandos con alguna driectorio de pruebas no vaya ser que te de problemas ya que en esas paginas parece que segun uses el comando puede dar errores)
 

Una otra posibilidad seria la ordenacion por nombre basado en (a,b,c)

Por ejemplo el comando sort te podria ser utils con eso.

https://help.ubuntu.com/stable/ubuntu-help/files-sort.html.en

https://www.computerhope.com/unix/usort.htm

 

 

Creo que ya he visto un programa que hace eso pero no me acuerdo como se llama.

 

 

Link to post
Share on other sites
  • 0

Saludos.

 

No se si es lo que buscas, prueba este script

#!/bin/sh
i=1
for f in *.mp3
do
  renombrar="$i"_"${f#*}"
  mv "$f" "$renombrar"
  i=$((i+1))
done

 

Te renombrará los archivos con el orden 1_unarchivo, 2_otroarchivo.....

 

Al decir que eran de música te he puesto la extensión mp3, si es otra lo cambias.

 

Pruébalo en un directorio con unos cuantos archivos, antes de hacerlo de verdad, por si acaso, yo lo he probado con archivos txt y funciona.

 

Saludos

Link to post
Share on other sites
  • 0
hace 17 horas, chujalt dijo:

Saludos.

 

No se si es lo que buscas, prueba este script


#!/bin/sh
i=1
for f in *.mp3
do
  renombrar="$i"_"${f#*}"
  mv "$f" "$renombrar"
  i=$((i+1))
done

 

Te renombrará los archivos con el orden 1_unarchivo, 2_otroarchivo.....

 

Al decir que eran de música te he puesto la extensión mp3, si es otra lo cambias.

 

Pruébalo en un directorio con unos cuantos archivos, antes de hacerlo de verdad, por si acaso, yo lo he probado con archivos txt y funciona.

 

Saludos

Hola chujalt, al ejecutar el script me lanza este error: bash: ./renombrar.sh: /bin/sh^M: intérprete erróneo: No existe el fichero o el directorio. El script lo ejecuto dentro del directorio a renombrar.

hace 19 horas, portaro dijo:

A ver si te ayuda → https://serverfault.com/questions/397762/how-to-make-folders-00-99-with-a-single-command-in-ubuntu/397768

https://unix.stackexchange.com/questions/48750/creating-numerous-directories-using-mkdir

(prueba los comandos con alguna driectorio de pruebas no vaya ser que te de problemas ya que en esas paginas parece que segun uses el comando puede dar errores)
 

Una otra posibilidad seria la ordenacion por nombre basado en (a,b,c)

Por ejemplo el comando sort te podria ser utils con eso.

https://help.ubuntu.com/stable/ubuntu-help/files-sort.html.en

https://www.computerhope.com/unix/usort.htm

 

 

Creo que ya he visto un programa que hace eso pero no me acuerdo como se llama.

 

 

Muchas gracias portaro le he estado echando un vistazo y de lo poco que he entendido, jjejej, creo que lo usa para crear el directorio numerado y yo lo necesito para los archivos del directorio, de todas formas voy a probar con uno de prueba a ver que sucede.

Link to post
Share on other sites
  • 0

Arreglado, he duckeado el error y era porque el archivo estaba hecho en otro sistema, windows, y he tenido que usar dos2unix para solucionarlo, lo he probado y funciona perfectamente el renombrado. Una cosa que quisiera preguntar, es que no tengo ni idea de scripts, se le puede añadir para que pille otra extensión en el mismo script? Es que la mayoría de archivos están en mp4 y el resto en webm.

 

Muchas gracias por el script, me va a ahorrar bastante trabajo, jejeje.

 

Saludos.

Link to post
Share on other sites
  • 0

Saludos....

 

Se me olvidó decirte que ejecutaras el script en el mismo directorio donde tienes los archivos a renombrar, pero ya veo que te has dado cuenta.

 

Si, en la línea

for f in *.mp3

cambia la extensión (en este caso mp3) por la que tu quieras.

 

Si lo que quieres es que enumere todos los archivos independientemente de la extensión que tengan entonces cambia esa línea así

 

for f in *.*

 

Saludos

Edited by chujalt
Link to post
Share on other sites
  • 0

Saludos.

 

Si después de renombrar los ficheros, con el tiempo añades mas archivos y tienes que volver a enumerarlos usa este script

 

#!/bin/sh
for f in *.mp3
do
  renombrar=${f##*_}
  mv "$f" "$renombrar"
done

Con esto dejarás el nombre del archivo como estaba originariamente, es decir, te quitará el numero del principio y el subguión y luego volver a ejecutar el script anterior para volver a enumerar.

 

Te recuerdo que te he puesto la extensión mp3, si te interesan otras lo cambias y si son todas pones un arterisco *

 

Como en el anterior te dije, primero pruébalo en un directorio con unos cuantos archivos para comprobar que funciona correctamente. Yo lo he probado en mi pc y me funciona, pero por si las moscas.

 

Saludos

 

 

Edited by chujalt
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
×
×
  • Create New...