[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hacer un grep de más de una palabra por archivo



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

fernando sainz escribió:
> El día 7 de mayo de 2009 19:41, Roberto Alsina
> <ralsina@netmanagers.com.ar> escribió:
>> Néstor Flores writes:
> 
> Creo que en el man de grep viene una opción "-e" que es la que andas
> buscando....
> 
> grep -e "kk" -e "lll"  fichero.txt
> 

Un compañero anterior comentaba usar egrep, tú indicas usar grep con la
opción -e, si no desean confundir al colistero díganle que lea el man
para que se encuentre con que... egrep y grep -E (en mayúscula) son el
mismo comando ergo ambos sirven exactamente para lo que él busca: buscar
varias palabras.

No obstante, tratar de hacerlo así sería como utilizar un cañón para
matar un mosquito: sirve pero estás subutilizándolo.

egrep funciona "realmente bien" en expresiones regulares complejas tales
como:
egrep "([0-9]+ab)*25098777" archivo_con_patrones_regulares

Además, si se llega a contabilizar el tiempo de búsqueda, se notará que
egrep es más lento que otros comandos cuando se utiliza para cosas
pequeñas; me tomé el atrevimiento de hacer un pequeño experimento:

Sea "test.1" un archivo que contiene el resultado del siguiente comando:

hector@arepa:/tmp/1$ cat /usr/share/doc/*/README > test.1

Este archivo contiene 25489 líneas y 940708 caracteres

Si quisiera buscar 2 palabras, tendría varias estrategias, vean las
diferencias entre ambas

hector@arepa:/tmp/1$ time fgrep -f patron test.1 > /dev/null

real    0m0.009s
user    0m0.008s
sys     0m0.000s
hector@arepa:/tmp/1$ time egrep "debian | package" test.1 > /dev/null

real    0m0.127s
user    0m0.124s
sys     0m0.000s

La diferencia que se nombraba en los párrafos anteriores se ve acá, el
archivo patron contiene las palabras debian y package, pasándola como
argumentos contenidos en un archivo  a fgrep (fgrep es grep -F) funciona
más rápido que hacerlo con egrep.

Nada que no pude resolver leyendo el manual y ayudándome con google.

Saludos y disculpen lo extenso del mail.

- --
**********************************************
Hector Colina. Linux  counter id 131637
Debian user, aka e1th0r
Mérida-Venezuela http://e1th0r.gulmer.org.ve
Key fingerprint = 6FA1 6D2F CF9E 5C86 7DC5  EF2C 881F 07E7 D12F 702D
LA REVOLUCIÓN NO SE HACE UNICAMENTE CON LAS ARMAS
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkoEJNYACgkQiB8H59EvcC29DgCgh2Q0Ng5MC7Gt27X7oyDdOkzW
aZUAn3LEnPqh6VKj20ZCkWHCDN7vncfY
=bBKv
-----END PGP SIGNATURE-----


Reply to: