elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Duda] Renombrar archivos bash
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Renombrar archivos bash  (Leído 4,593 veces)
-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
[Duda] Renombrar archivos bash
« en: 27 Agosto 2009, 19:36 pm »

Hola tengo una carpeta con los emoticones que he puesto en el emesene, pero, quiero renombrar los archivos masivamente, en el mismo lugar donde están los emoticones hay un archivo llamado map que tiene el atajo que uso en el emesene y el nombre del archivo con la ruta, yo quiero cambiar el nombre del archivo al nombre del atajo, para lo que hice un script.

El problema está exactamente en el mv, para todos los archivos me lanza:

Código:
mv: cannot stat `/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/T_T.853b6e76c6e8406be77a6727c2a27ad1672678b3.gif\r': No such file or directory

Con la ruta de cada archivo diferente, no se porque agrega ese \r, he mostrado la variable $nomb y $path por la stdout y salen como deberían salir, pero, el comando mv le agrega ese \r y no la encuentra, yo creo que el script está bien, pero, si alguien puede mirarlo y decirme si estoy equivocado en algo, se lo agradecería.

El script en cuestión y el archivo map

emotic.sh
Código
  1. #!/bin/bash
  2. i=0
  3. while read linea
  4. do
  5. i=`expr $i + 1`
  6. if( test `expr $i % 2` -eq 0); then
  7. path=$linea
  8. ext=${path:(-5)}
  9. nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/$nomb$ext"
  10. mv -iv $path $nomb
  11. else
  12. nomb=$linea
  13. fi
  14. done <  /home/roberto/.config/emesene1.0/mi_email/custom_emoticons/map

map
Código:
wub2
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/wub2.f8c025ca6a7653af12ccacfdb6c2e7812e6d3a9f.gif
Q2
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/Q2.9019096afdc091cfb8728ad3ab7491d6ef33c8ae.png
:bb
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3Abb.d3c352349615b6c45233eb851f74857a66e67624.png
:¿3
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3A3.6e8c991969ca2a0027f78bb94fb3ffa8643175a8.png
jeje
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/jeje.3a5024335dbe0bfbe279780196767dfa839a0712.gif
'''
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%27%27%27.78237052b2cfbbc89610748b26a6cc203c34a15f.gif
imbecil134
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/imbecil.fa21c52829af15ec604abd7e0ed51e041c06fc50.gif
HERO
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/HERO.bddd3dacfb87d09e8fbbf337e55e6828bd0ee4a2.gif
noo046
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/noo046.43f116d4838144ecaeb80bc2b0fdde25c77ee9fb.gif
xdgvdcb
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/xdgvdcb.8cc304dc4d0b7b736295121fc9b811f10e523ed5.png
fiu
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/fiu.65ca15cb31db0a0eabdfa6c7951b17d52be39449.gif
;Z
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3BZ.179dc3e2f3a4c239976b736bb81f6224637ff486.png
Ooo
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/Ooo.aafe70c625ce485be9e60508c71e96d5dbef1f15.png
lofwo
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/lofwo.3aeca4603403bc40bf8470e54345a540ce652a25.gif
:z
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3Az.f8749d038c70ce2212ed365dac0d74c06f526122.png
mMm
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/mMm.7f7c5cc8bbb61a91364c596694d42be3533b0c14.gif
zipte
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/zipte.3943053f85919dfb9688696b340f12507862cd64.gif
2020
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/2020.9b88c98290f06b6af260b766cb43081d30cb74bb.gif
x4
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/x4.e3ba2c116c41bbc05210897c1a859fcc4deb084a.gif
T·T
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/T%C2%B7T.4b3ce2fdb6f634e78bdfe79662a37f0995e62bae.gif
:XX
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3AXX.e1da248fbe819ae19fa0b7e9cda8ed5074875673.gif
wuuu
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/wuuu.f259757bcf9875b537965f70184cb0b6f891d2bc.gif
jaa
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/jaa.10e280a48f8cce5edc16029f7a891de390ee7280.gif
wuby
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/wuby.ce84b74226fcd05f44c068792402757e97915afc.gif
1313
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/1313.2a963e105c94dd3e79dbea95ffae723c5d6f4327.gif
1214
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/1214.693adcef31afe8d0689f0269c2f080f5e6e635ba.gif
MURO
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/MURO.f029c8e1bc17560f58591064c28fb2ba3a84ff85.gif
prrr
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/prrr.b8cc5c973ff65cabd44d79b36ba1e89499b3c702.gif
nuse
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/nuse.259bbc27e64baab255bbf586025626180d3e97e8.gif
wii.
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/wii..ed6f7b649a51a076b55c8cf6c0405a95c8dac99d.gif
XD
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/XD.1b9abc723c4644314389e9d128b81c548364dd1f.png
aaaah*
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/aaaah%2A.bb4507f9804113a6f85095c1c610cca13ecc9c9e.png
jm
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/jm.1ce869390b3f4eb1a5643935c040ba87b54dad1b.png
jj
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/jj.23adb3b9e2b35e332f463580744c20644ac1d501.gif
aaadios
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/aaadios.c143abbdaa0b56ec5ecde5daae12852a306fadff.gif
bostez0
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/bostez0.d6be47706368e784fbaa2620433dd52af299d62b.gif
weeeeee
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/weeeeee.13930168217fb83f15129032c0ab1ff5ba1dfc40.gif
`
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%60.c89c4580938af56269da47b3b704c19e7bd63009.gif
¬w¬
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%C2%ACw%C2%AC.93e24a8055bedad544af7593c8e63a96425129f0.gif
T-T
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/T-T.7a57248ba486db073c45f8a595c43c97e735a53b.png
INFLUEN
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/INFLUEN.f37f65142c68f344ab8a5c26a883430be9bb0cd8.gif
eh?
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/eh%3F.eeecb895d723f1be2a4a0e435de801bc7750a4f2.png
:F
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3AF.9351e86119883b0ba088683b7c537fc87f228c01.png
unsure*
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/unsure%2A.87b9945c7f0bf71c52762d01dfdc74383206b073.gif
loco**
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/loco%2A%2A.05cae15c55d58992069bf04a56005d0902653759.gif
lol1
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/lol1.0e09c093d2c4d67a4bd3167a02c18ca8f7ab5c7e.gif
baezip
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/baezip.b00d20d16fbebe9df17de89ed5d18f9a1b32df6f.gif
ja*
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/ja%2A.3e2aebc3ab287c6470f5722531eef5e2758785f6.gif
>=(
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3E%3D%28.ccacc28a1e900e74fbb3039f5b9933e0235efd47.png
AAAAA
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/AAAAA.87b4d81ed7f0bde82a191059ac3403fb5b91eb23.gif
lal2
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/lal2.ba1f7cd80144310a802cb36c8c5977b33438810f.gif
;_;*
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/%3B_%3B%2A.d9972ac15f0123e531b7ccb32ed3731dec3f1700.png
T_T
/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/T_T.853b6e76c6e8406be77a6727c2a27ad1672678b3.gif

Saludos y Gracias.


En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Duda] Renombrar archivos bash
« Respuesta #1 en: 27 Agosto 2009, 22:55 pm »

Buenas -Ramc- ;D

La verdad no he hecho NADA en bash, en algún momento tuve la intención, pero como utilizo linux de manera muy irregular, entonces nada  :-X

De cualquier manera hay un par de cosas que no me cierran

Código
  1. nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/$nomb$ext"

Le asignas a nomb una ruta, para lo cual utilizas el mismo nomb? esta bien eso?
Y bueno, lo referente al caracter \r, intenta con sed, algo así...

Código
  1. path=$($linea | sed 's/\r//g')

Saludos

P.D: en caso de que haya puesto un bestialidad, favor no insultar al moderador, ya he avisado que no he hecho NADA en bash  :xD


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: [Duda] Renombrar archivos bash
« Respuesta #2 en: 27 Agosto 2009, 23:17 pm »

Hola Novlucker.

La línea de lo de la variable nomb, sí es validad, porque la asignación se hace hasta el final, o sea, si tengo:

nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/$nomb$ext"
y antes de la asignación nomb es igual a asd y ext igual a .png entonces queda como:

nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/asd.png"

Es más como mecionaba la asignación es correcta, lo compruebo con echo's, con respecto a lo del \r, el problema es que ese \r no está en la línea, justo en la línea del mv es que aparece automágicamente y no tengo idea de por qué, o sea, antes y después del mv ese \r no está.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Duda] Renombrar archivos bash
« Respuesta #3 en: 28 Agosto 2009, 00:24 am »

Citar
La línea de lo de la variable nomb, sí es validad, porque la asignación se hace hasta el final, o sea, si tengo:

nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/$nomb$ext"
y antes de la asignación nomb es igual a asd y ext igual a .png entonces queda como:
Aaaahhh  :D, es que me sonaba raro que tuvieses la variable, le asignaras una cadena, y como concatenado detras de la cadena, la misma cadena (a modo de variable).

Raro entonces lo del \r, yo había pensado eso otro porque se supone que ese caracter es un retorno de carro y que por eso te estaba saliendo  :-\
A ver si aparece Leo  :P
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
-Ramc-


Desconectado Desconectado

Mensajes: 495



Ver Perfil
Re: [Duda] Renombrar archivos bash
« Respuesta #4 en: 28 Agosto 2009, 01:48 am »

Arreglado.

Le eliminé el \r con:
Código:
tam=`expr length $linea`
path=${linea:0:`expr $tam - 1`}

Es lo mismo que hiciste con sed, pero, no se por qué con sed no funcionó, así que tome toda la cadena que leía menos el último simbolo y así eliminé el \r.

Gracias Novlucker.

Saludos.
En línea


Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Duda] Renombrar archivos bash
« Respuesta #5 en: 28 Agosto 2009, 01:57 am »

Que bien!  :D
Entonces si era eso ... quizás el sed no funcionó porque no se nada de BASH, pero ya lo había dicho  :xD

Pero bueno, si ya esta solucionado mejor.

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programación batch (renombrar archivos)
Scripting
aaronezpino 4 6,633 Último mensaje 3 Febrero 2011, 23:42 pm
por leogtz
Scrip BASH para renombrar Archivos multiples
Scripting
jarfuch 2 5,440 Último mensaje 10 Marzo 2011, 01:40 am
por leogtz
Renombrar varios archivos a la vez.
Windows
|Miguel| 3 3,607 Último mensaje 5 Noviembre 2011, 23:10 pm
por |Miguel|
renombrar archivos bat « 1 2 »
Scripting
charlyta 10 14,727 Último mensaje 12 Marzo 2012, 18:35 pm
por -- KiLiaN --
Utilizar uploadify y renombrar los archivos
Desarrollo Web
Crash_RPM 2 2,899 Último mensaje 22 Agosto 2012, 12:17 pm
por Crash_RPM
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines