Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 11 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Jue Nov 18, 2010 1:42 pm 
Arriba  
Hola soy nuevo en las programación de script en linux y algo que creia que seria facil de hacer se me esta atascando:
Necesito modificar el nombre los archivos xxxxxxxxx.aaabbb que se encuentran en alguno de los subdirectorios del directorio /home/ranton1959/
y para ello empece con esta sentencia:
for fichero in $(find /home/ranton1959/ -name *.aaabbb)
do

y aqui quiero que cada archivo devuelto se convierta en xxxxxxxx.aaa

Alguien sabe como hacerlo?

muchas gracias anticipadas

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Jue Nov 18, 2010 3:08 pm 
Arriba  
ranton1959 escribió:
Hola soy nuevo en las programación de script en linux y algo que creia que seria facil de hacer se me esta atascando:
Necesito modificar el nombre los archivos xxxxxxxxx.aaabbb que se encuentran en alguno de los subdirectorios del directorio /home/ranton1959/
y para ello empece con esta sentencia:
for fichero in $(find /home/ranton1959/ -name *.aaabbb)
do

y aqui quiero que cada archivo devuelto se convierta en xxxxxxxx.aaa

Alguien sabe como hacerlo?

muchas gracias anticipadas


Proba así:

Código:
find ~ -type f -iname *.aaabbb -exec mv -fv {} `echo {}|sed s/bbb//g` \; 2>/dev/null

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Vie Nov 19, 2010 8:08 am 
Arriba  
Hola he probado y me da un error de permiso denegado, tendré que revisarlo

gracias de todas formas

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Dom Abr 18, 2010 4:30 pm
Mensajes: 2790
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)

Nota Publicado: Vie Nov 19, 2010 9:35 am 
Arriba  
prueba como root

_________________
... reinstalar un SO cuando produce un error es como tirar un bebe a la basura cuando se hace caca..

Trusted Network and Developer | Reglamento General de los Foros |WIKI-EL | Twitter @SISIAM
Debian| ArchLinux |Linux User #508809

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Mié Nov 24, 2010 10:32 am 
Arriba  
bueno, perdon por los retrasos en contestar, he estado con otros temas.
Eso al final lo consegui de la siguiente manera:
for fichero in $(find /publishers/ -name *.xlsNOCHE);
do
mv -fv $fichero $(echo $fichero |sed s/NOCHE//g);

posiblemente se podria haber hecho en una sentencia pero no supe hacerlo.

pero ahora me he encontrado con otro problema, ¿que pasa cuando tengo archivos con el nombre con espacios en blanco
Este es el ejemplo, para este directorio
ls /publishers/ciudades/
Cuadernos de Roma.xlsNOCHE Historias de Madrid.xlsNOCHE


y cuando ejecuto el script me devuelve este resultado:
/publishers/ciudades/Cuadernos
sed: -e expression #1, char 0: no previous regular expression
sed: -e expression #1, char 2: unterminated `s' command
mv: missing destination file operand after `$fichero'
Try `mv --help' for more information.
de
sed: -e expression #1, char 0: no previous regular expression
sed: -e expression #1, char 2: unterminated `s' command
mv: missing destination file operand after `$fichero'
Try `mv --help' for more information.
Roma.xlsNOCHE
sed: -e expression #1, char 0: no previous regular expression
sed: -e expression #1, char 2: unterminated `s' command
mv: missing destination file operand after `$fichero'
Try `mv --help' for more information.


Como podeis ver el problema son los espacios entre palabras que hace que se separe la instrución
¿Alguien puede ayudareme? gracias anticipadas

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mié Nov 24, 2010 12:05 pm 
Arriba  
Así:

Código:
for fichero in $(find /publishers/ -name *.xlsNOCHE);
do
   mv -fv "$fichero" $(echo "$fichero" |sed s/NOCHE//g);


Y se simplificaría así:

Código:
find /publishers -type f -name *.xlsNOCHE -exec mv -fv {} `echo {}|sed s/NOCHE//g` \; 2>/dev/null


O sino, le sacas el 2>/dev/null para ver los errores.

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Mié Nov 24, 2010 1:47 pm 
Arriba  
Pero esto me da problemas cuando el nombre de arcivo tiene espacios.

¿Como puedo solucionarlo?

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Mié Nov 24, 2010 3:23 pm 
Arriba  
Ponele comillas:

Citar:
for fichero in $(find /publishers/ -name *.xlsNOCHE);
do
mv -fv "$fichero" $(echo "$fichero" |sed s/NOCHE//g);

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Jue Nov 25, 2010 1:36 am 
Arriba  
No funciona, sigue considerando que la segunda palabra es el desdtino del vomando mv.
¿sabria alguien de un comando que eliminase esos espacios, puedo renombrar el fichero, y cambiarlos por ejemplo por _?

Gracias por las ayudas

 Perfil Email  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Abr 26, 2007 11:00 pm
Mensajes: 1426

Nota Publicado: Jue Nov 25, 2010 6:59 am 
Arriba  
http://www.google.com/search?q=espacio+ ... heros+bash
programacion/problema-con-ficheros-que-contienen-espacios-bash-t44446.html
http://www.descubriendolinux.com.ar/201 ... -espacios/

_________________
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit."

"Finibus Bonorum Et Malorum", Cicerón

 Perfil WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Jue Nov 18, 2010 12:57 pm
Mensajes: 6

Nota Publicado: Jue Nov 25, 2010 7:37 am 
Arriba  
Gracias hipersayan creo que con lo que comentan del IFS solucionare el tema.

un placer haberte conocido, me has sido de gran ayuda

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 11 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO