[Duda] Renombrar archivos bash

Iniciado por -Ramc-, 27 Agosto 2009, 19:36 PM

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

-Ramc-

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:

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 (bash) [Seleccionar]
#!/bin/bash
i=0
while read linea
do
i=`expr $i + 1`
if( test `expr $i % 2` -eq 0); then
path=$linea
ext=${path:(-5)}
nomb="/home/roberto/.config/emesene1.0/mi_email/custom_emoticons/$nomb$ext"
mv -iv $path $nomb
else
nomb=$linea
fi
done <  /home/roberto/.config/emesene1.0/mi_email/custom_emoticons/map


map
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.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

Novlucker

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 (bash) [Seleccionar]
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 (bash) [Seleccionar]
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
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-

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á.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

Novlucker

CitarLa 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
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-

Arreglado.

Le eliminé el \r con:

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.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

Novlucker

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
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