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

-
Juegos
- La última versión del cliente Steam de Valve permite una descarga más rápida de actualizaciones en Linux
- Los juegos para PC superan a las consolas desde hace años, según un informe
- DXVK 2.5.3 trae mejoras para Far Cry 5, Max Payne 3 y otros juegos
- Instalar Steam en Fedora Linux.
- Juego Simulador de Camiones para Linux: Euro Truck Simulator 2
- Cómo instalar Steam en Linux para empezar a jugar miles de juegos
- Valve lanza una actualización del cliente Steam para mejorar aún más los juegos nativos en Linux
- Half-Life 2 celebra su 20º aniversario
- La nueva actualización del cliente Steam añade grabación de juegos y mejora los juegos nativos en Linux
- Este videojuego de estrategia bélica, es tan bueno que hasta el Pentágono lo usa como entrenamiento
- Una fórmula de ajedrez se está apoderando del mundo
- Los 15 mejores juegos de Linux que deberías jugar en 2024
- Los 28 mejores juegos del MS-DOS disponibles online para jugar gratis en tu Navegador.
- Distribuciones de Linux para Juegos: Elevando la Experiencia de Juego en 2023
- Unity se apresura a aclarar el plan de incremento de precios, mientras los desarrolladores de juegos se enfadan