LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Pregunta: ¿Puede explicar cómo usar los operadores OR, AND y NOT en el comando grep de Unix/Linux con algunos ejemplos?

Respuesta: En grep, tenemos opciones equivalentes a los operadores OR y NOT. No hay un operador Grep para AND. Pero, puedes simular un 'AND' usando patrones. Los ejemplos mencionados a continuación lo ayudarán a comprender cómo usar OR, AND y NOT en el comando grep de Linux.

El siguiente archivo employee.txt se utiliza en los siguientes ejemplos.


$ cat employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   Manager    Sales       $6,000

Ya sabías que grep es extremadamente poderoso en base a estos ejemplos de comandos grep .

Operador Grep 'OR'

Utilice cualquiera de los siguientes 4 métodos para grep OR. Prefiero el método número 3 mencionado a continuación para el operador grep OR.

1. Grep O usando \|

Si usa el comando grep sin ninguna opción, debe usar \ | para separar múltiples patrones para la condición o.

grep 'pattern1\|pattern2' filename

Por ejemplo, grep Tech o Sales del archivo employee.txt. Sin la barra diagonal frente a la tubería, lo siguiente no funcionará.


$ grep 'Tech\|Sales' employee.txt
100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 500 Randy Manager Sales $6,000

2. Grep O usando -E

La opción grep -E es para expresiones regulares extendidas. Si usa el comando grep con la opción -E, solo necesita usar | para separar múltiples patrones para la condición o.

grep -E 'pattern1|pattern2' filename

Por ejemplo, grep Tech o Sales del archivo employee.txt. Solo usa el | para separar múltiples patrones OR.


$ grep -E 'Tech|Sales' employee.txt
100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 500 Randy Manager Sales $6,000

3. Grep O usando egrep

egrep es exactamente igual a 'grep -E'. Por lo tanto, use egrep (sin ninguna opción) y separe múltiples patrones para la condición o.

egrep 'pattern1|pattern2' filename

Por ejemplo, grep Tech o Sales del archivo employee.txt. Solo usa el | para separar múltiples patrones OR.


$ egrep 'Tech|Sales' employee.txt
100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 500 Randy Manager Sales $6,000

4. Grep O usando grep -e

Usando la opción grep -e puede pasar solo un parámetro. Use la opción múltiple -e en un solo comando para usar múltiples patrones para la condición o.

grep -e pattern1 -e pattern2 filename

Por ejemplo, grep Tech o Sales del archivo employee.txt. Use la opción múltiple -e con grep para los múltiples patrones OR.


$ grep -e Tech -e Sales employee.txt
100 Thomas Manager Sales $5,000 200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 500 Randy Manager Sales $6,000

Grep AND

5. Grep Y usando -E 'patrón1. * Patrón2'

No hay operador AND en grep. Pero, puedes simular Y usando la opción grep -E.

grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename

El siguiente ejemplo agrupará todas las líneas que contienen tanto "Dev" como "Tech" (en el mismo orden).


$ grep -E 'Dev.*Tech' employee.txt
200 Jason Developer Technology $5,500

El siguiente ejemplo agrupará todas las líneas que contienen tanto "Manager" como "Ventas (sales)" (en cualquier orden).

$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt

Nota: Usar expresiones regulares en grep es muy poderoso si sabe cómo usarlo de manera efectiva.

6. Grep Y usando el comando Múltiple grep

También puede usar múltiples comandos grep separados por tubería para simular el escenario AND.

grep -E 'pattern1' filename | grep -E 'pattern2'

El siguiente ejemplo agrupará todas las líneas que contienen "Gerente" y "Ventas" en la misma línea.


$ grep Manager employee.txt | grep Sales
100 Thomas Manager Sales $5,000 500 Randy Manager Sales $6,000

Grep NOT

7. Grep NO usa grep -v

Usando grep -v puede simular las condiciones NOT. La opción -v es para la coincidencia invertida. es decir, coincide con todas las líneas excepto el patrón dado.

grep -v 'pattern1' filename

Por ejemplo, muestre todas las líneas excepto las que contienen la palabra clave "Ventas".


$ grep -v Sales employee.txt
200 Jason Developer Technology $5,500 300 Raj Sysadmin Technology $7,000 400 Nisha Manager Marketing $9,500

También puede combinar NO con otro operador para obtener algunas combinaciones potentes.

Por ejemplo, lo siguiente mostrará Administrador o Desarrollador (el bot ignora las Ventas).


$ egrep 'Manager|Developer' employee.txt | grep -v Sales
200 Jason Developer Technology $5,500 400 Nisha Manager Marketing $9,500

 
Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política