GNU/Linux >> Tutoriales Linux >  >> Linux

7 Ejemplos de operadores Linux Grep OR, Grep AND, Grep NOT

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

Respuesta: En grep, tenemos opciones equivalentes a los operadores OR y NOT. No hay operador grep AND. Pero, puedes simular Y usar patrones. Los ejemplos que se mencionan 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 usa 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ía que grep es extremadamente poderoso según estos ejemplos de comandos grep.

Grep OR Operador

Use 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 Ventas del archivo employee.txt. Sin la barra invertida delante de la canalización, 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 Ventas 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 Usar egrep

egrep es exactamente lo mismo que 'grep -E'. Por lo tanto, use egrep (sin ninguna opción) y separe varios patrones para la condición o.

egrep 'pattern1|pattern2' filename

Por ejemplo, grep Tech o Ventas 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 Usar 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 Ventas 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 Y

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

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

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

El siguiente ejemplo combinará 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 reunirá todas las líneas que contienen tanto "Gerente" como "Ventas" (en cualquier orden).

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

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

6. Grep Y usando el comando grep múltiple

También puede usar varios comandos grep separados por tubería para simular un escenario AND.

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

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

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

Grupo NO

7. Grep NO usa grep -v

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

grep -v 'pattern1' filename

Por ejemplo, muestre todas las líneas excepto aquellas que contengan 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 NOT con otro operador para obtener algunas combinaciones poderosas.

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

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

Linux
  1. Comando Cat de Linux:uso y ejemplos

  2. El comando Sed de Linux:uso y ejemplos

  3. Tutorial de comandos agradable y renice de Linux (7 ejemplos)

  4. Comandos de cabeza y cola en Linux explicados con ejemplos

  5. Ejemplos de comandos grep en Linux (Hoja de trucos)

Opciones de comando y ejemplos de Tee Command en Linux

50 ejemplos simples y útiles del comando Buscar en Linux

16 Ejemplos Prácticos y Útiles del Comando Echo en Linux

Comando Grep en Linux (con ejemplos)

15 ejemplos prácticos de comandos Grep en Linux / UNIX

Uso y ejemplos sensibles a mayúsculas y minúsculas de Grep