[eside-ghost] scripts...

Ender eduvedder en terra.es
Mar Feb 21 15:55:10 CET 2006


Aupa!

Si quieres buscar de forma recursiva.... por ejemplo en ficheros x

find /directorio -type f | while read linea; do
	if grep "PATRON" $linea  > /dev/null 2>$1; then
		#patron encontrado, haz lo que quieras aqui
		# el fichero lo tiene la variable $linea
		echo "Patron encontrado en $linea..."
	fi
done

# nota: uso while en vez de for por si los ficheros tienen espacios en
los nombres.

# nota 2: si solo quieres buscar ficheros xml por ejemplo el find podria
ser...

find /directorio -type f -name "*.xml"

jugar con la potencia del find (-mindeppth, -maxdepth, -exec, ...) me
parece bastante útil en vez de usar ls, aunque si realmente solo quieres
un ls se puede usar.



El mar, 21-02-2006 a las 15:47 +0100, halls escribió:
> puedes hacer algo asi
> 
> for F in *
> do
>   cat $F | grep patron
> done
> 
> el * ese siempre hace referencia a una lista de parametros, separada
> con espacio, por ejemplo
> 
> for F in 1 2 3
> do
>   echo $F
> done
> 
> pos te imaginas XD
> 
> en nuestro caso * es el listado de ficheros del directorio actual...
> podrias poner
> 
> for F in /directorio/ke/me/de/la/gana/*
> 
> etc...
> 
> 
> 
> lo se, me explico como las setas... pero hago lo k puedo XD
> 
> alejop!
> 
> PD: acabo de releer tu email... si lo k kieres es sacar el nombre de
> solo akellos ficheros, puedes, dentro del bucle poner algo asi: if [ !
> "$(cat $F|grep patron)" = "" ]; then do echo $F; fi
> 
> 
> El día 21/02/06, kapi59ttp <kapi59ttp en euskalnet.net> escribió:
>         Wenas tardes!!!
>         Me gustaria crear un script que mire el contenido de todos los
>         ficheros que existen en un directorio y compruebe que si
>         alguno de ellos cumple un patron dado. He intentado hacer algo
>         por el estilo
>         
>         listar ----> sacar el contenido de cada fichero ----> ver si
>         cumple un patron ---> sacar el nombre del fich.
>         
>         ls | cat ??? | grep patron ...
>         
>         En eso he pensado basicamente, pero estoy un poko...se podria
>         hacer con awk??? 
>         Alguna idea para hacer un bucle y recorrer el resutaldo del
>         ls???.
>         
>         Eskerriko asko.
>         
>         _______________________________________________
>         eside-ghost mailing list
>         eside-ghost en deusto.es
>         https://listas.deusto.es/mailman/listinfo/eside-ghost
>         
> 
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost



Más información sobre la lista de distribución eside-ghost