que el apreciar y disfrutar el cuerpo desnudo de una mujer...

Reto

2008-08-16 10:02:56-05

Hacks

¿Cómo le haces para cambiar la extensión de un grupo de archivos?

Obviamente no con el siguiente:

% mv *.sh *.txt

ni tampoco con el siguiente:

% find . -maxdepth 1 -type f -name '*.sh' -exec mv {} {}.txt \;

ya que quedarían muy feos al tener ahora la extensión '*.sh.txt'.

Permalink: http://www.mononeurona.org/users/entry/asarch/1507


Comments Comentblogs:
1.- rnstux rnstux wrote:

Primis primis!!:

Creamos los archivos:
rnstux@server:~$ touch 1.txt
rnstux@server:~$ touch 2.txt
rnstux@server:~$ touch 3.txt

Corremos el siguiente comando:

rnstux@server~:for ARCHIVO in *.txt ; do NUEVOARCHIVO=`echo $FILE | sed 's/.txt$//'` ; mv $ARCHIVO $NUEVOARCHIVO.sh ; done

Explicación:

1-Se inicia un ciclo for, en donde la variable archivo tomara el nombre de nuestro primer archivo de tipo .txt, es decir: "1.txt"

for ARCHIVO in *.txt

2-do NUEVOARCHIVO=`echo $ARCHIVO | sed 's/.txt$//'`

Después de inicializar la variable con el nombre del archivo, crea otra variable denominada NUEVOARCHIVO y le asigna el valor de la variable ARCHIVO, a la cual con el comando sed 's/.txt$//'` le eliminamos la extensión, es decir el lugar de llamarse "1.txt" se llamara "1",

3-Ahora le agregamos la extensón que deseamos :)
mv $ARCHIVO $NUEVOARCHIVO.sh ; done






2008-08-16 11:25:25-05
2.- mandrake mandrake wrote:

Proximamente yo les podre un reto.

2008-08-16 11:46:46-05
3.- asarch asarch wrote:

rnstux@server~:for ARCHIVO in *.txt ; do NUEVOARCHIVO=`echo $FILE | sed 's/.txt$//'` ; mv $ARCHIVO $NUEVOARCHIVO.sh ; done

Ups, un error, en ningun lugar declaraste la variable $FILE:

"echo $FILE | sed ...".

En lugar de eso debiste de haber tecleado:

"echo $ARCHIVO | sed..."

:-P

2008-08-16 13:09:00-05
4.- thot thot wrote:

Sería bueno que pusieras específicamente todas las restricciones al problema.

Una forma podría ser esta:

for f in *.sh; do mv $f ${f%.txt}.py; done

2008-08-16 16:07:08-05
5.- rnstux rnstux wrote:

Ooops!..Lo sieno asarch!---Pero en la parte de la explicación ya viene corregido :P

2008-08-16 19:20:34-05
6.- asarch asarch wrote:

thot: las restricciones las impones tu.

2008-08-16 20:58:27-05
7.- asarch asarch wrote:

...pero esa seria una excelente solucion.

2008-08-16 21:02:07-05
8.- asarch asarch wrote:

De hecho... no. Es lo mismo que el:

find . -maxdepth 1 -type f -name '*.sh' -exec mv {} {}.py \;

Ya que deja a los archivos con la extension fea de '*.sh.py'.

2008-08-16 21:07:06-05
9.- mandrake mandrake wrote:

Soy el ganador :P.. Cual es el premio?????

2008-08-16 21:18:10-05
10.- rnstux rnstux wrote:

Ooops!! Mandrake dejo su sesión abierta :P
Soy el ganador :P..Cual es el premio??

2008-08-16 21:20:40-05
11.- rayado rayado wrote:

Con XFCE, Menú, Sistema, Renombrador Masivo.

2008-08-17 09:46:36-05
12.- thot thot wrote:

No creo asarch, lo he probado y no me da ningún problema. El operador % elimina la parte final de la cadena si coincide con la parte que se encuentra después del operador.

2008-08-17 10:22:54-05
13.- thot thot wrote:

Qué tonto escribí el otro ejemplo:
for f in *.sh; do mv $f ${f%.sh}.py; done

Corrección, porque mandé una de las pruebas que hice. :P.

thot@shunashi:~/prueba$ ls
a1.sh a2.sh adafs.sh b.sh
thot@shunashi:~/prueba$ for f in *.sh; do mv $f ${f%.sh}.py; done
thot@shunashi:~/prueba$ ls
a1.py a2.py adafs.py b.py
thot@shunashi:~/prueba$


2008-08-17 10:26:05-05
14.- ficovh ficovh wrote:

Pase por aqui, y le entre al ruedo.

$ touch 1.txt 2.txt 3.txt 5.txt

ls -1 *.txt | sed "s/\(.*\)\.txt$/mv '&' '\1.sh'/" | sh

ls -1 *.sh
# lista solo una entrada por linea.

Sed toma la salida de ls, busca en todos los archivos ocurrencias .txt y empieza a mover (ren) cada uno en background a su equivalente .sh, la salida finalmente se pasa al shell (sh default) para que procese toda la cadena.

;)

P.S. Pongamoslo en hacks en el wiki de NetBSD MX

ficovh



2008-08-18 02:54:17-05
15.- asarch asarch wrote:

¡Bienvenido ficovh!

Una solución a esto sería (si estás usando el C Shell):

% foreach file ( *.sh )
> mv $file ${file:t}
> end

El detalle es que si hay archivos asi

file1.sh.txt.py.pl.csh.log

no puedo hacer que sean ahora asi:

file1.csh

2008-08-18 10:05:32-05

New Comentblog

Captcha



Login



Remember me:
asarch
...sobre todo en la gimnasia.
BSD Daemon Copyright 1988 by Marshall Kirk McKusick. All Rights Reserved.'
Powered by:
Despabilando la MonoNeurona.org
Livechat

<-Nombre
ana_20 wrote:
y si estudio ing en informatica i sistemas
2 weeks, 3 days ago

ana_20 wrote:
kiero un curso basico d viasual net!!! i soi d peru
2 weeks, 3 days ago

ana_20 wrote:
kiero un curso basico d viasual net!!! i soi d peru
2 weeks, 3 days ago

hola wrote:
alguiene q estudie sistemas
on 23/10/08

hola wrote:
hola aluien de peru
on 23/10/08

hola wrote:
hola aluien de peru
on 23/10/08

hola wrote:
sdfdsf
on 23/10/08

vendaval wrote:
hola, que piensas de mi proyecto comunitario en mi universidad
on 22/10/08

vendaval wrote:
hola, que pienzas de mi proyecto comunitario en mi universidad
on 22/10/08

lokito wrote:
te kiero follarr
on 19/9/08

¿Qué estuve haciendo?
Para usar: qemu -localtime -m 256 -soundhw all -hda c.img
3 days, 21 hours ago
Para instalar: qemu -localtime -m 256 -hda c.img -cdrom linux.iso -boot d
3 days, 21 hours ago
qemu-img create -f qcow2 c.img 10G
3 days, 21 hours ago
A lo mejor fue "brujería" ¡Gulp! :-S
5 days, 18 hours ago
¿"clavo"? ¿Qué clavo si el zapato en esa parte no lleva ningún clavo?
6 days, 7 hours ago
De hecho si. Solamente el dolor que, curiosamente, ya desapareció :-S
6 days, 7 hours ago
Algo me "picó" en mi pie izquierdo. Lo curioso es que tría los zapatos puestos :-(
6 days, 19 hours ago
Ese día yo no estuve ahí :-(
1 week, 2 days ago
¿Alguien sabe la verdadera razón de la rebelión de Lucifer?
1 week, 2 days ago
¡Gloria al nombre del Señor!
1 week, 4 days ago
Galerias
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2008.