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

-
KDE
- KDE Plasma 6.3.2 lanzado con soporte para WebP animado y GIF para Spectacle
- Se lanzó KDE Plasma 6.3.1 con mejoras en Plasma Discover y numerosas correcciones de errores
- Se lanzó KaOS Linux 2025.01 con Linux Kernel 6.12 LTS y KDE Plasma 6.2
- KDE Linux: La Nueva Distribución Independiente del Proyecto KDE
- KDE Plasma 6.2.1 mejora el soporte para juegos XWayland y corrige varios errores
- KDE neon 6.2 ya está disponible con el escritorio KDE Plasma 6.2, basado en Ubuntu 24.04 LTS
- Se lanzó oficialmente el entorno de escritorio KDE Plasma 6.2: estas son sus novedades
- Esta distribución de Linux está inspirada en la interfaz de Windows y funciona sorprendentemente bien
- Desarrollador de KDE: ¿Por qué Plasma 6.2 incluye una ventana emergente anual para donaciones?
- KaOS Linux 2024.07 lanzado con KDE Plasma 6.1 y kernel de Linux 6.9
- KDE Frameworks 6.4 ya está disponible con soporte ColorScheme-Accent y JXR
- Lanzamiento oficial del entorno de escritorio KDE Plasma 6.1, esto es lo nuevo
- KDE Plasma 5.27.11 LTS corrige la compatibilidad con Flatpak en Discover y Plasma Wayland
- KDE Slimbook V es la primera PC portátil Linux del mundo que se envía con KDE Plasma 6
- La primera distribución de Linux que ofrece un entorno KDE Plasma 6 puro ya está aquí