[eside-ghost] scripts...
Ender
eduvedder en terra.es
Mar Feb 21 16:14:45 CET 2006
Aupa Halls!!
un par de cosillas...
> cat $F | grep patron
Está bien, pero si sólo necesitas hacer un grep en un fichero deberías
usar la sintaxis "grep patron fichero". Por dejarlo lo más simple
posible, aunque lo que proponías está perfecto eh?
> el * ese siempre hace referencia a una lista de parametros, separada
> con espacio, por ejemplo
El * en bash creo que se sustituye por el resultado de "ls".
Para entender bien el funcionamiento del * en algunos comandos lo mejor
es que nos imaginemos eso, sustituir directamente lo que nos daría un ls
en el '*'... por ejemplo...
cp * directorio/
realmente es...
cp `resultado del ls` directorio/
(y NO copiaria ficheros ocultos por ejemplo)
por lo que estamos utilizando en realidad la sintaxis "cp file1 file2
file3 ... directorio/" que podéis encontrar en el man"
Eso sí, puede ser que haya comandos que capturen el '*' y lo utilicen de
otra forma...
> 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
ostia que grilladon, no?
¿No es mas cómodo utilizar la salida numérica de GREP? devuelve 0 en
caso de encontrarlo y otro número si no, por lo que... el primer paso
sería...
cat $F | grep $patron && echo $F
como queremos que grep funcione en silencio....
cat $F | grep $patron >/dev/null 2>&1 && echo $F
y como el CAT no hace falta...
grep $patron $F >/dev/null 2>&1 && echo "encontrado en $F"
Os aconsejo que tengáis en cuenta el código de error de los comandos, ya
que es muy muy útil para hacer scripts...
Saludetes!!
Ender
PD - grep -q opera en silencio y sería la mejor opción, ya que sale en
cuanto encuentra la primera ocurrencia del patron, pero no se si es
compatible con todas las versiones.
Más información sobre la lista de distribución eside-ghost