🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: es.comp.os.linux.programacion
10 messages
10 total messages Started by ravenheart Mon, 25 Sep 2006 17:24
Renombrar ficheros
#743
Author: ravenheart
Date: Mon, 25 Sep 2006 17:24
5 lines
1178 bytes
Soy nuevo en esto del scripting.
Tengo una serie de ficheros en un directorio con la misma extensi�n 
(01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
�Como hacrlo?
Gracias
Re: Renombrar ficheros
#744
Author: ravenheart
Date: Mon, 25 Sep 2006 17:37
7 lines
1373 bytes
> Soy nuevo en esto del scripting.
> Tengo una serie de ficheros en un directorio con la misma extensi�n 
> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
> �Como hacrlo?
> Gracias

O, en su defecto, me valdr�a con quitarles (los n �ltimos caracteres)
Re: Renombrar ficheros
#746
Author: Pascal Bourguignon
Date: Mon, 25 Sep 2006 17:55
30 lines
2048 bytes
ravenheart <ravenheart.j@gmail.com> writes:

>> Soy nuevo en esto del scripting.
>> Tengo una serie de ficheros en un directorio con la misma extensi�n
>> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
>> �Como hacrlo?
>> Gracias
>
> O, en su defecto, me valdr�a con quitarles (los n �ltimos caracteres)

n=4 # por ejemplo
for f in ??.* ; do 
   g="$(echo "$f"|sed -e "s/^\([0-9][0-9]\..*\).\{$n\}/\1/")"
   [ "$f != "$g" ] && mv "$f" "$g"
done


Total, leer:

man bash
man sed
man 7 regexp
man mv
man test

-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

"This machine is a piece of GAGH!  I need dual Opteron 850
processors if I am to do battle with this code!"
Re: Renombrar ficheros
#747
Author: kAlvaro
Date: Mon, 25 Sep 2006 18:01
12 lines
1646 bytes
ravenheart ha escrito:
> Soy nuevo en esto del scripting.
> Tengo una serie de ficheros en un directorio con la misma extensión
> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)

Hay mil formas, a cada cual más potente, pero lo más asequible en mi
humilde opinión es el comando "rename" que viene (si no recuerdo mal)
con MySQL. Sería algo así como:

rename .xxx .yyy *.xxx

(no lo he probado)
Re: Renombrar ficheros
#748
Author: Pere Pujal i Carabantes
Date: Mon, 25 Sep 2006 18:09
22 lines
1691 bytes
Hola ravenheart!

El 25-09-2006
ravenheart va escriure en 
es.comp.os.linux.programacion:
 
> > Soy nuevo en esto del scripting.
> > Tengo una serie de ficheros en un directorio con la misma extensi�n 
> > (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
> > �Como hacrlo?
> > Gracias

> O, en su defecto, me valdr�a con quitarles (los n �ltimos caracteres)

man rename

Asi sin probar rename 's/xxx/yyy/' *xxx
-- 
Mentjant spam a sc@fornol.no-ip.org
Comiendo spam en cs@fornol.no-ip.org
Je mange spam a spamc@fornol.no-ip.org
Eating spam at cspam@fornol.no-ip.org
Re: Renombrar ficheros
#749
Author: ravenheart
Date: Mon, 25 Sep 2006 18:15
52 lines
2473 bytes
Buff, aqu� hay mucha tela.
Lo mirar� con calma, gracias
> ravenheart <ravenheart.j@gmail.com> writes:
> 
>>> Soy nuevo en esto del scripting.
>>> Tengo una serie de ficheros en un directorio con la misma extensi�n
>>> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
>>> �Como hacrlo?
>>> Gracias
>> O, en su defecto, me valdr�a con quitarles (los n �ltimos caracteres)
> 
> n=4 # por ejemplo
> for f in ??.* ; do 
>    g="$(echo "$f"|sed -e "s/^\([0-9][0-9]\..*\).\{$n\}/\1/")"
>    [ "$f != "$g" ] && mv "$f" "$g"
> done
> 
> 
> Total, leer:
> 
> man bash
> man sed
> man 7 regexp
> man mv
> man test
> 
Pascal Bourguignon escribi�:

> ravenheart <ravenheart.j@gmail.com> writes:
> 
>>> Soy nuevo en esto del scripting.
>>> Tengo una serie de ficheros en un directorio con la misma extensi�n
>>> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
>>> �Como hacrlo?
>>> Gracias
>> O, en su defecto, me valdr�a con quitarles (los n �ltimos caracteres)
> 
> n=4 # por ejemplo
> for f in ??.* ; do 
>    g="$(echo "$f"|sed -e "s/^\([0-9][0-9]\..*\).\{$n\}/\1/")"
>    [ "$f != "$g" ] && mv "$f" "$g"
> done
> 
> 
> Total, leer:
> 
> man bash
> man sed
> man 7 regexp
> man mv
> man test
> 
Re: Renombrar ficheros
#750
Author: ravenheart
Date: Mon, 25 Sep 2006 18:43
2 lines
1225 bytes
Esto parece m�s user-friendly :-p
Muchas gracias.
Re: Renombrar ficheros
#751
Author: arrase
Date: Mon, 25 Sep 2006 19:29
18 lines
1733 bytes
 > que viene (si no recuerdo mal)
> con MySQL. 

Recuerdas mal :) viene con:

dante ~ # equery belongs rename
[ Searching for file(s) rename in *... ]
sys-apps/util-linux-2.12r-r4 (/usr/bin/rename)


-- 
<arrase@gulcas.org><http://arrase.no-ip.org><www.gulcas.org>
      <Gnupg Keys: http://arrase.no-ip.org/pubkey.txt>

print "".join(map(lambda numChar:filter(lambda x:(x<"0") or \
(x>"9"),numChar),["0"+chr(104)+"0","1"+chr(111)+"1","2"+chr(108)+"2", \
"3"+chr(97)+"3","4"+chr(32)+"4","5"+chr(109)+"5","6"+chr(117)+"6", \
"7"+chr(110)+"7","8"+chr(100)+"8","9"+chr(111)+"9"]))
Re: Renombrar ficheros
#753
Author: Gonzalo Pérez de Olaguer Córdoba
Date: Mon, 25 Sep 2006 21:34
20 lines
1838 bytes
Hola ravenheart <ravenheart.j@gmail.com>
el Mon, 25 Sep 2006 18:24:51 +0100 escribiste:

> Soy nuevo en esto del scripting.
> Tengo una serie de ficheros en un directorio con la misma extensión 
> (01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)

renombrar:

for i in *.xxx; do mv "$i" "${i%%.xxx}.yyy"; done

para quitar la extensión:

for i in *.xxx; do mv "$i" "${i%%.xxx}"; done

mírate la sección "Parameter Expansion" del manual de bash(1), hay más

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Re: Renombrar ficheros
#777
Author: Alberto Cabello Sanchez
Date: Thu, 28 Sep 2006 08:38
18 lines
1467 bytes
Gonzalo P�rez de Olaguer C�rdoba wrote:
> Hola ravenheart <ravenheart.j@gmail.com>
> el Mon, 25 Sep 2006 18:24:51 +0100 escribiste:
> 
> 
>>Soy nuevo en esto del scripting.
>>Tengo una serie de ficheros en un directorio con la misma extensi�n 
>>(01.xxx, 02.xxx, ...) y quiero renombrarlos a (01.yyy, 02.yyy, ...)
> 
> 
> renombrar:
> 
> for i in *.xxx; do mv "$i" "${i%%.xxx}.yyy"; done
> 

Esto no me lo esperaba yo de ti: tres caracteres in�tiles.

for i in *.xxx; do mv "$i" "${i%xxx}yyy"; done
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads