Re: BASH listo directorios y si es vacio...

2007-07-09 Por tema Gabriel.nnl
Manolet Gmail wrote:
> hola amigos! tengo una inquietud, con un script quiero listar todos
> los archivos xml en una carpeta para trabajar con ellos... pero quiero
> que si no encuentra archivos me vote un aviso. tengo esto...
> 
> for F in *.xml; do
> 
> done
> 
> el problema esta en que si no existe ningun archivo xml va a intentar
> abrir un archivo llamado *.xml, que obviamente no existe
> 
> intente con esto:
> 
> for F in *.xml; do
> if [ "$F" = "*.xml" ] ; then
> echo "no hay archivos en la carpeta
> fi
> done
> 
> pero me mando un error diciendo que no existe el archivo *.xml
> 
> luego intente con esto..
> 
> if [ !"$F"]
> 
> tampoco...
> alguna idea?
> 
> 

¿Qué tal algo como?:
$ if [ `ls *.xml 2>/dev/null | wc -l` == 0 ] ;then echo aviso; fi

Saludos

PS: Hay que recordar de vez en cuando que esto es una lista de usuarios
de Debian y no de Bash...
-- 
--
Gabriel Núñez~
   -
gabriel.nnl(at)estudiante.uam.es -- gabriel.nunez(at)hispalinux.es
//May The Source Be With You//
--//--
--//-- Infórmese sobre las patentes de software: /-
http://proinnova.hispalinux.es/
http://eupat.ffii.org/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: BASH listo directorios y si es vacio...

2007-07-08 Por tema Arnau Carrasco


- Original Message - 
From: "Manolet Gmail" <[EMAIL PROTECTED]>

To: "Lista Debian-Español" 
Sent: Monday, July 09, 2007 5:36 AM
Subject: BASH listo directorios y si es vacio...



hola amigos! tengo una inquietud, con un script quiero listar todos
los archivos xml en una carpeta para trabajar con ellos... pero quiero
que si no encuentra archivos me vote un aviso. tengo esto...

for F in *.xml; do

done

el problema esta en que si no existe ningun archivo xml va a intentar
abrir un archivo llamado *.xml, que obviamente no existe

intente con esto:

for F in *.xml; do
if [ "$F" = "*.xml" ] ; then
echo "no hay archivos en la carpeta
fi
done

pero me mando un error diciendo que no existe el archivo *.xml

luego intente con esto..

if [ !"$F"]


prueba con:
if [ -f "$F" ]




tampoco...
alguna idea?



prueba el find, da mejores resultados:

for F in `find "/ruta/hacia/los/archivos" -type f -name "*.xml"`; do

En el man del find podrás encontrar todas sus posibilidades, que
no son pocas. Además si tienes más de 4000 nosecuantos archivos (no
recuerdo la cifra), el ls te da un error diciendo que la lista de
argumentos es demasiado grande. Si al find le pasas como ruta a buscar
un directorio (sin asteriscos), resuelves este problema.

Un saludo.

-
Arnau Carrasco - http://www.arnaucarrasco.com
-


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: BASH listo directorios y si es vacio...

2007-07-08 Por tema Octavio Alvarez
On Sun, 08 Jul 2007 20:36:46 -0700, Manolet Gmail <[EMAIL PROTECTED]>  
wrote:



for F in *.xml; do

done

el problema esta en que si no existe ningun archivo xml va a intentar
abrir un archivo llamado *.xml, que obviamente no existe


Checa nullglob en el manual de bash.


intente con esto:

for F in *.xml; do
if [ "$F" = "*.xml" ] ; then
echo "no hay archivos en la carpeta
fi
done


Doble signo de igual, en lugar de uno.

--
Octavio.



Re: BASH listo directorios y si es vacio...

2007-07-08 Por tema Octavio Alvarez

On Sun, 08 Jul 2007 20:44:28 -0700, Blu <[EMAIL PROTECTED]> wrote:


for F in *.xml; do

done

el problema esta en que si no existe ningun archivo xml va a intentar
abrir un archivo llamado *.xml, que obviamente no existe

[...]

En realidad no. Va a intentar abrir un archivo cuyo nombre es un string
vacio.


Depende de "nullglob" en bash. Por lo general está activado.

[EMAIL PROTECTED]:~$ echo *.txt
celulares.txt
[EMAIL PROTECTED]:~$ echo *.xml
*.xml
[EMAIL PROTECTED]:~$ for A in *.xml; do echo $A; done
*.xml

--
Octavio.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: BASH listo directorios y si es vacio...

2007-07-08 Por tema Blu
On Sun, Jul 08, 2007 at 10:36:46PM -0500, Manolet Gmail wrote:
> hola amigos! tengo una inquietud, con un script quiero listar todos
> los archivos xml en una carpeta para trabajar con ellos... pero quiero
> que si no encuentra archivos me vote un aviso. tengo esto...
> 
> for F in *.xml; do
> 
> done
> 
> el problema esta en que si no existe ningun archivo xml va a intentar
> abrir un archivo llamado *.xml, que obviamente no existe
[...]

En realidad no. Va a intentar abrir un archivo cuyo nombre es un string
vacio.

[...]
> alguna idea?

help test

-- 
Blu


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



BASH listo directorios y si es vacio...

2007-07-08 Por tema Manolet Gmail

hola amigos! tengo una inquietud, con un script quiero listar todos
los archivos xml en una carpeta para trabajar con ellos... pero quiero
que si no encuentra archivos me vote un aviso. tengo esto...

for F in *.xml; do

done

el problema esta en que si no existe ningun archivo xml va a intentar
abrir un archivo llamado *.xml, que obviamente no existe

intente con esto:

for F in *.xml; do
if [ "$F" = "*.xml" ] ; then
echo "no hay archivos en la carpeta
fi
done

pero me mando un error diciendo que no existe el archivo *.xml

luego intente con esto..

if [ !"$F"]

tampoco...
alguna idea?


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]