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

-
News
- El desastre del sumergible Titán tardó años en gestarse, revelan nuevos detalles
- Los Sistemas Operativos Más Usados del Mundo
- CDIR: una forma más rápida de navegar por carpetas y archivos en Linux
- Cómo Instalar Linux en una Unidad USB ( Lapiz Óptico o Pendrive )
- Militares israelíes destruyen una clínica palestina esencial para enfrentarse al coronavirus
- Más personas obtienen sus noticias de las redes sociales que los periódicos, según un estudio
- Playboy elimina sus cuentas de Facebook
- Joplin, el reemplazo gratuito de Evernote, multiplataforma y opensource
- Nuestro respeto a Barrapunto, el primer portal de Software Libre
- Apple convierte open source su lenguaje de programación Swift
- Solicitud de Formulario para empleo de Al-Qaeda descubierto
- Ocurrió (y no pudimos publicar...)
- Nueva empresa hará posible que los diarios online cobren a sus lectores
- Primeras fotos y video del modelo A de Raspberry Pi
- Hoy es el día Internacional de la Libertad de Prensa