Renombrar / Archivos truncado

  • diego75
  • Born
  • Born
  • No Avatar
  • Registrado: Sep 20, 2010
  • Mensajes: 3
  • Status: Offline

Nota Septiembre 20th, 2010, 2:40 am

Hola a todos,

Me gusta escribir un script para cambiar el nombre de los archivos, pero ni yo no puedo.

Mi problema:

En un directorio es tipos de archivo:

ABCDEF_blablablablablablabla.extension

Cómo cambiar su nombre al mantener sólo los primeros 6 caracteres ABCDEF lextension +? ABCDEF.extensionn

Gracias por las luces de su davance!
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Septiembre 20th, 2010, 2:40 am

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Septiembre 20th, 2010, 3:48 am

Suponiendo que usted está seguro de que todos los cambios de nombre se traducirá en nombres de archivo único, theres algo como esto.

BASH Código: [ Select ]
#!/bin/bash
 
for file in $( ls ./); do
   if [[ -f $file && $file == *.* ]]; then
      mv $file "${file:0:6}.${file#*.}"
   fi
done
  1. #!/bin/bash
  2.  
  3. for file in $( ls ./); do
  4.    if [[ -f $file && $file == *.* ]]; then
  5.       mv $file "${file:0:6}.${file#*.}"
  6.    fi
  7. done


Cuando guarda en el directorio que desea trabajar, se cambiará el nombre de cualquier cosa que es un archivo normal y tiene una extensión de archivo a los 6 primeros caracteres del nombre de archivo y la extensión.
Strong with this one, the sudo is.
  • diego75
  • Born
  • Born
  • No Avatar
  • Registrado: Sep 20, 2010
  • Mensajes: 3
  • Status: Offline

Nota Septiembre 20th, 2010, 4:53 am

Gracias por su respuesta rápida joebert...por los contras que no funciona.

Jai se olvidó de especificar que lanzó en KSH (AIX)

Y después de un mensaje de error se produce jai:

0403-011 sustitución de error de este comando

Así que, volviendo al punto de partida lol
  • diego75
  • Born
  • Born
  • No Avatar
  • Registrado: Sep 20, 2010
  • Mensajes: 3
  • Status: Offline

Nota Septiembre 20th, 2010, 8:25 am

He aquí una solución que funciona (jai transferido la extensión)

Código: [ Select ]
cd $pathtemp;
for test in *.toto ;
    do mv $test $pathout/$(echo "$test" | sed 's/\([^_]*\).*//');    
done
  1. cd $pathtemp;
  2. for test in *.toto ;
  3.     do mv $test $pathout/$(echo "$test" | sed 's/\([^_]*\).*//');    
  4. done


Eso, espero que esto sirva!

Gracias por tu ayuda

:P:P gif "alt =": P "title =" Razz "> gif "alt =": P "title =" Razz "> :P
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Septiembre 20th, 2010, 8:40 am

Obras para mí. :)
Strong with this one, the sudo is.

Publicar Información

  • Total de mensajes en este tema: 5 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 123 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC