Re: BASH listo directorios y si es vacio...
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...
- 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...
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...
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...
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...
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]