On 2020-10-27 09:52, Damián Tomey Soto wrote:

El 26/10/2020 a las 12:08, Ulises Gonzalez Horta escribió:

On 2020-10-26 11:52, Damián Tomey Soto wrote:
Buenas tardes colegas, necesito de la colaboración de ustedes para formar una expresión regular.

Tengo un archivo con varias líneas, ej:

20201026 azul,hola pepe,gato,blanco,lapiz

20201026 verde,hola pepe,negro,goma

20201026 azul,hola pepe,perro,blanco,goma

20201026 azul,hola juan,perro,blanco,lapiz

20201026 azul,hola ernesto,gato,blanco,goma

Necesito extraer las líneas que tiene la frase hola pepe y además la palabra blanco.

Probé con grep .*hola pepe.* pero no se como excluir las que no tienen la palabra blanco.

Gracias

egrep "hola pepe|blanco"   $file

Esto te va a sacar las lines que tienen 'hola pepe' y las que tienen 'blanco'

--
Salu2, Ulinx
"En un problema con n ecuaciones
siempre habrá al menos n+1 incógnitas"
Linux user 366775
Quieres saber de Cuba o visitar Cuba, revisa mi canal Youtube (en español) http://bit.ly/Alocubano

Ulises buenos días, gracias por contestar.

Revisando el correo me di cuenta que no lo redacté bien, yo necesito las que tienen la frese hola pepe pero que no incluyen la palabra blanco.

El problema real es que quiero de los logs de un pfsense sacar las líneas relacionadas con el tráfico de entrada a la interfaz WAN y luego excluir cierto tráfico que no me interesa. Te pongo un ejemplo real, solo voy a cambiar las IP.

* Oct 23 00:00:00 A.B.C.D filterlog: 9,,,1000000103,re1,match,block,in,4,0x0,,128,20627,0,none,17,udp,71,A.B.12.232,202.12.27.33,53879,53,51 * Oct 23 00:00:00 A.B.12.225 filterlog: 233,,,1597153005,em0,match,pass,in,4,0x0,,128,14811,0,none,17,udp,77,A.B.214.17,A.B.E.F,61830,53,57 * Oct 23 00:00:00 A.B.C.D filterlog: 228,,,1000045713,re1,match,pass,out,4,0x0,,127,14811,0,none,17,udp,77,A.B.214.17,A.B.E.F,61830,53,57 * Oct 23 00:00:02 A.B.C.D filterlog: 9,,,1000000103,re0,match,block,in,4,0xc0,,1,58443,0,none,89,ospf,64,A.B.107.25,224.0.0.5,datalength=44 * Oct 23 00:00:10 A.B.C.D filterlog: 9,,,1000000103,re0,match,block,in,4,0xc0,,1,58457,0,none,89,ospf,64,A.B.107.25,224.0.0.5,datalength=44 * Oct 26 12:50:53 A.B.C.D filterlog: 9,,,1000000103,re0,match,block,in,4,0x0,,252,18060,0,none,1,icmp,60,A.B.10.138,A.B.107.20,request,29,5537640 * Oct 26 12:55:46 A.B.C.D filterlog: 9,,,1000000103,re0,match,block,in,4,0x0,,59,1319,0,DF,6,tcp,1240,172.30.225.185,A.B.E.F,60724,465,1188,A,1757074009:1757075197,311127353,340,,nop;nop;TS * Oct 26 19:43:16 A.B.C.D filterlog: 9,,,1000000103,re0,match,block,in,4,0x0,,252,4137,0,none,1,icmp,60,A.B.10.138,A.B.107.20,request,30,273340

el tráfico de entrada que me interesa es el que mi pf bloquea, y se refleja con esta frase: re0,match,block,in

usando la expresión grep .*re0,match,block,in.* obtengo las líneas de la 4 a la 8 pero no me interesan las que tienen la palabra ospf que son la 4 y la 5.

usando la expresión grep .*re0,match,block,in.* | grep -v ospf entonces me quedo con las 6, 7 y 8 que son las únicas que me interesan.

Hay alguna forma más elegante de hacer lo anterior, tal vez en una sola expresión regular???

--
Damian Tomey Soto
Administrador de Red
CTE 10 de Octubre, Nuevitas
Tel: (32) 414702 Ext. 280

Mira, yo lo haria con dos greps para que sea mas simple y mas efectivo ... asi se entiende y funciona...

--
Salu2, Ulinx
"En un problema con n ecuaciones
siempre habrá al menos n+1 incógnitas"
Linux user 366775
Quieres saber de Cuba o visitar Cuba, revisa mi canal Youtube (en español) http://bit.ly/Alocubano
_______________________________________________
Gutl-l mailing list -- gutl-l@listas.jovenclub.cu
To unsubscribe send an email to gutl-l-le...@listas.jovenclub.cu

Responder a