Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Dudas y comentarios relacionadas con paquetes o programas específicos (obtención, uso, actualizaciones, versiones, problemas de instalación, etc.)

Moderadores: doc, Deckon

Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por usr » Mié May 19, 2010 2:09 pm

Hola.

Tengo archivos que no están en UTF-8, por lo que el sistema me los muestra con el carácter "?" y no puedo copiarlos a otro disco duro.
Necesito alguna forma de sustituir el carácter "?" por el "_" (por ejemplo).

Nautilus se supone que debería ser capaz de copiar este tipo de archivos sin problema, pero nada más lejos de la realidad: con cada uno de ellos me dice que el archivo no se puede copiar y que si deseo omitirlo.
Dolphin ni siquiera me deja acceder a ellos debido a que KDE 4 no es retrocompatible con ficheros no UTF-8.

No he encontrado ninguna aplicación que permita encontrar y renombrar masivamente, sólo algunas que renombran archivos en lote pero no buscan; y paradójicamente, no puedo arrastrar a ellas el resultado de una búsqueda desde Nautilus.

Sé que por consola se puede hacer, (quizá concatenando los comandos find y rename) y he probado varias cosas que se me han ocurrido, pero sin resultado (tengo bastante olvidado el manejo de shell).

Resumiendo: lo que necesito es un método que encuentre archivos y directorios/subdirectorios que contengan el carácter "?" y que lo sustituya el por el "_".
Creo que debería ser algo parecido a

Código: Seleccionar todo

find /* '*?*' | rename '*?*' '*_*'
Un saludo y gracias de antemano.
Última edición por usr el Vie May 21, 2010 10:03 pm, editado 1 vez en total.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por niky45 » Mié May 19, 2010 2:37 pm

el problema no es ese. el problema es que el "?" puede ser cualquier caracter no admitido por la codificacion (si, he visto bastantes bichos de esos), por lo que una expresion regular se complica bastante.....

yo lo soluciono renombrando uno por uno:

Código: Seleccionar todo

#ls
         file?name.ext
#cp    file*.ext     file_name.ext
pero entiendo que en cuanto tienes unos cuantos se hce inviable.

tal vez esto....

Código: Seleccionar todo

for FILE in `ls -q` do
    FILE2=`echo $FILE | sed 's:?:"*":g'`
    FILE3=`echo $FILE | sed 's:?:"_":g'` 
    mv $FILE2  $FILE3
done
se supone que ls le pasa el "?" como "?", el coge y sustituye ese ? por * para que mv lo vea, y luego el ? por _ para que renombre.

deberia funcionar.
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por usr » Mié May 19, 2010 3:04 pm

Efectivamente. En consola, "ls" dichos carácteres los muestra como "?".

Muchas gracias, lo probaré y ya contaré qué tal me ha ido.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por akodo » Mié May 19, 2010 3:45 pm

Podrías pobrar con algo como:

Código: Seleccionar todo

rename 's/[^[:alnum:]._- ]/_/g' <archivos>
Para este caso particular, se sustituye los caractares que NO sean alfanuméricos o ".", "_", "-" por el caracter "_". En principio debería sustituirte lo que quieres, aunque es posible que quieras añadir algunos caracteres más como el espacio en blanco, la "ñ" y otros caracteres.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por usr » Jue May 20, 2010 1:46 am

Hola de nuevo.

niky45, tu script

Código: Seleccionar todo

#!/bin/bash

for FILE in `ls -q` do
    FILE2=`echo $FILE | sed 's:?:"*":g'`
    FILE3=`echo $FILE | sed 's:?:"_":g'` 
    mv $FILE2  $FILE3
done
me tira el siguiente error:

Código: Seleccionar todo

línea 4: error sintáctico cerca del elemento inesperado `FILE2=`echo $FILE | sed 's:?:"*":g'`'
akodo: Gracias por tu respuesta, pero no quiero sorpresas por si se me olvida añadir algún carácter. Además, todos los archivos no los tengo en el mismo sitio, por lo que de todas formas no me serviría.

Gracias a ambos.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por niky45 » Jue May 20, 2010 2:48 pm

intenta escapar ese asterisco, a ver que dice: \*
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
xunilk
Forista Medio
Forista Medio
Mensajes: 181
Registrado: Sab Dic 06, 2008 8:00 am

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por xunilk » Vie May 21, 2010 12:28 am

Yo usaba como renombrador masivo Thunar. Prueba a ver.

Saludos
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios

Mensaje por usr » Vie May 21, 2010 10:02 pm

Hola.

niky45: Me seguía tirando el mismo error.

xunilk: Lo había probado con anterioridad pero por sí solo no me servía ya que no busca.

Al final lo he conseguido buscando con Nautilus el texto "codificación no válida" (también habría valido buscando "?"), arrastrando el resultado al renombrador masivo de Thunar (el cual se ejecuta automáticamente al tratar de renombrar dos o más elementos), eligiendo la opción "Buscar y reemplazar" (poniendo en "Buscar" "?" y en "Reemplazar con" "_") y dándole al botón "Renombrar archivos".

Nota: Las comillas no hay que ponerlas.
He detallado la explicación por si le puede servir a cualquiera que cuando busque lo mismo se tope con esta página.

Un saludo y muchas gracias por vuestra ayuda.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por niky45 » Sab May 22, 2010 3:27 pm

niky45: Me seguía tirando el mismo error.
esque ahora que lo veo, sobra una ' :shock:

en fin, ya lo has solucionado, asi que no insistire mucho :P , pero... pienso que si consiguieramos que no tirase error, el script funcionaria. (lo digo porque no todos tenemos a mano thunar y nautilus.... :? )

:D
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por usr » Sab May 22, 2010 5:54 pm

Si me dices la comilla que sobra (que supongo que será una pareja, porque todas están abiertas y cerradas), podría hacer la prueba volviendo a renombrar algunos archivos y subdirectorios con el dichoso símbolo (el texto "codificación no válida" ahora no saldría, pero no es algo que haría falta quitar ya que Nautilus lo muestra a modo informativo, en consola no sale).
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por niky45 » Sab May 22, 2010 7:59 pm

dejalo. de todas, formas, no sobra ninguna, era solo que en el error que ponia bash parecia que si que sobraba......

ya hare pruebas yo la proxima vez que tenga que pelearme con los caracteres raros, y pongo el script.

:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por usr » Dom May 23, 2010 3:11 am

Por si te sirve de algo, al ejecutarlo con sh el lugar de bash, el error que devuelve es diferente:

Código: Seleccionar todo

1: Syntax error: word unexpected (expecting "do")
Un saludo.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por niky45 » Dom May 23, 2010 3:38 pm

sh no entiende la sintaxis de bash. es logico que de error.... a mi hace poco no me reconocia un case. :?

pero tranquilo, que cuando lo tenga que hacer, lo miro a fondo. (que tambien yo.... escribir scripts sin probarlos.... luego me sorprendo de que no funcionen :?)

:)
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
usr
Forista Medio
Forista Medio
Mensajes: 280
Registrado: Mié Nov 02, 2005 8:00 am
Ubicación: GMT+1
Contactar:

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por usr » Dom May 23, 2010 5:44 pm

Entendido. Pensaba que ambos servían para lo mismo, ya veo que bash es más completo.
Un saludo.
Mis padres también utilizan GNU/Linux.
--
- /usr/weblog: http://usrweblog.blogspot.com/
- usr's projects: http://sites.google.com/site/usrprojects/
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1801
Registrado: Dom Oct 10, 2004 7:00 am

Re: Renombrado masivo de archivos y directorios/subdirectorios [solucionado]

Mensaje por neurus » Lun May 24, 2010 7:52 pm

No había visto este thread.

Yo tenía un script en alguna parte para eso, lo cual es bastante sencillo.

Pero como no veo que mencionen la herramienta creada específicamente para solucionar ese problema, la nombro: convmv.

convmv -f <codificación-actual> -t utf-8 <nombrearchivo>
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje