Scrip BASH para renombrar Archivos multiples

Iniciado por jarfuch, 9 Marzo 2011, 17:49 PM

0 Miembros y 1 Visitante están viendo este tema.

jarfuch

Buenas tardes a todos, este es mi primer post y queria consultarles sobre un script que necesito hacer.
El tema es que necesito renombrar masivamente un grupo de archivos en Linux, tiene que ser si o si por consola, y el problema es que por  un problema de codificacion de caracteres, quedo en varios nombres la cadena "codificación no valida" despues del nombre y la extension.
Para complicarlo mas todavía, varios archivos tienen mas de un punto en su nombre, por ejemplo: "archivo.de texto.odt (codificacion no valida)" entoncves necesito eso, sacar la ultima parte del nombre del archivo, contando los caracteres desde la derecha, pero que quede todo el nombre igual.

Espero que se entienda y que alguin me pueda dar una mano.

Desde ya muchas gracias

Javier

RyogiShiki

#1
Este script en Ruby (no bash) hará el trabajo por ti: http://paste.ideaslabs.com/show/hxKpEN2Jie descargalo, le cambias la extensión de txt a rb y lo ejecutas en una terminal con los permisos necesarios para renombrar archivos con el comando:

Código (ruby) [Seleccionar]
ruby nombredelescript.rb

También puedes ir a la linea 7 y cambias la cadena por la que quieras quitar de los archivos, por defecto es: "(codificación no válida)" con las tildes y todo. Le das la ruta con los archivos y te los renombrará... y lo de los puntos realmente no importa con tal de que la última palabra después de un punto sea una extensión válida....

Requisitos: Tener instalado Ruby claro está

Saludos

PD: Wii MSG: 200!! XD


leogtz

Necesito que pongas lo que llevas y cómo estás intentandolo.

Necesito que pongas de ejemplo un archivo (o archivos) y cómo quieres renombrarlos.


Código (bash) [Seleccionar]
[leo@archero Desktop]$ for file in *; do echo -e "Archivo : ${file}, ext : ${file#*.}"; done
Archivo : arreglos.txt, ext : txt
Archivo : bible.txt, ext : txt
Archivo : code, ext : code
Archivo : code.c, ext : c
Archivo : comandos.txt, ext : txt
Archivo : Cosas, ext : Cosas
Archivo : fbcmd_update.php, ext : php
Archivo : fobias.txt, ext : txt
Archivo : Mastering_Unix_Shell_Scripting, ext : Mastering_Unix_Shell_Scripting
Archivo : pl.pl, ext : pl
Archivo : protocol.pdf, ext : pdf
Archivo : prueba.pl, ext : pl
Archivo : rae.sh, ext : sh
Archivo : shell.sh, ext : sh
Archivo : tecladix.txt, ext : txt
Archivo : un.pl, ext : pl
[leo@archero Desktop]$
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com