LinuxParty
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

-
Empleo
- El CEO de IBM no cree que la IA vaya a reemplazar a los programadores en el futuro cercano
- El desempleo en el sector de TI en Estados Unidos aumenta al 5,7 %. ¿Está la IA afectando a los empleos tecnológicos?
- Un estudio afirma que el incumplimiento de los plazos hace que la gente juzgue el trabajo con más dureza
- Los buscadores de empleo inundan a los reclutadores con CV generados por IA
- Esto es lo que sucede cuando le das "dinero gratis" a la gente
- ¿Una semana laboral de tres días? Experimentos de inicio para atraer talento
- Seguir el valor de las criptomonedas en la terminal de Linux en tiempo real
- Reportero deplora dejar entrar a la gente de Amazon en su casa
- La Economía Gig celebra el Trabaje Usted mismo Hasta Morir
- ¿Qué es la Economía Gig?
- El Ejercito Italiano se ahorra 29 millones de euros, con LibreOffice
- Economía Star Trek
- Las 25 empresas de Software que mejor pagan a sus empleados
- Google no es puro demonio como Facebook
- Facturar un diseño web sin ser autónomo (I)