¿Qué diferencia existe entre los comandos grep, egrep y fgrep?

Creo que ya estás familiarizado con el comando grep y puede suceder que te encuentres con términos como egrepy fgrep en algunos sitios de Internet.

Por si te preguntas cuáles son esos comandos y si están relacionados con grep, en este tutorial vamos a revisar esas variantes de grep explicando sus diferencias y sus similitudes.

¿Qué es egrep y fgrep? ¿Cuál es la diferencia entre grep, egrep y fgrep?

La e de egrep significa extendido y la f de fgrep significa fijo. egrep permite el uso de expresiones regulares extendidas y fgrep no permite las expresiones regulares.

Ahora intentemos explicarlo con ejemplos.

Sabes que grep funciona en expresiones regulares, pero esa no es una verdad por completo.

De forma predeterminada, el comando grep funciona en expresiones regulares básicas.

Si deseas realizar búsquedas más complejas, debes usar una expresión regular extendida.

Si lo deseas, puedes ver la diferencia entre expresiones regulares básicas y expresiones regulares extendidas .

El comando egrep permite el uso de expresiones regulares extendidas, y el comando fgrep, funciona en una cadena fija en lugar de una expresión regular.

Eso significa que toma el patrón de búsqueda tal como es para buscar y por lo tanto, es más rápido que grep.

Aunque, todavía se puede ver egrep y fgrep en el sistema, la realidad es que se encuentran obsoletos. Muchos sistemas, todavía incluyen los binarios para estas variantes.

Sin embargo, ahora es el estándar POSIX usa grep estándar con indicadores de opciones especiales ( -E o -F).

Estas banderas ayudan a grep a emular la funcionalidad de cada comando respectivamente.

Para resumir:

  • egrepy fgrep son comandos obsoletos y deben evitarse.

  • egrep es equivalente al comando grep -E y permite el uso de expresiones regulares extendidas.

  • fgrep es equivalente al comando grep -F y usa una cadena fija para la búsqueda y por lo tanto, realiza una búsqueda más rápida.

Comprender la diferencia entre grep, egrep y fgrep con un ejemplo

Puedes crear un archivo de texto corto para demostrar las diferencias entre las diferentes variantes de grep.

rosepac@ciberninjas:~$ cat test.txt 
this is a tasty test

Comando grep estándar

Esta es la versión estándar de grep diseñada para buscar patrones usando expresiones regulares básicas.

El uso de grep requiere el escape de metacaracteres para generar el comportamiento esperado.

Supongamos que quieres buscar test o sencillo. Esto es lo que puedes usar:

rosepac@ciberninjas:~$ grep 't\(a\|e\)st' test.txt

¿Notas cómo tienes que escapar del paréntesis? Esto es mucho más fácil de ver y entender con expresiones regulares extendidas.

Grep extendido: Egrep o grep -E

Egrep se creó para brindar soporte extendido para los meta caracteres. Esto significa que escapa estos caracteres especiales por defecto.

Esto ahorra tiempo y generalmente hace que las expresiones sean más fáciles de leer. El comando que usé arriba se puede reescribir como mucho más legible:

rosepac@ciberninjas:~$ egrep 't(a|e)st' test.txt

El binario egrep no admite el carácter { de forma consistente. Eso puede resultar en comportamientos inesperados.

Algunas versiones de egrep permiten que se interpreten correctamente como caracteres literales si se escapan ( \{). Sin embargo, la mejor práctica para hacer coincidir un literal { es encerrarlo entre corchetes [{].

Grep fijo: Fgrep o grep -F

Los profesionales del software saben que aunque la capacidad computacional ha aumentado considerablemente, nunca se puede ignorar la optimización.

Grep es una herramienta muy poderosa, pero a veces puede usar los recursos del sistema innecesariamente.

Aquí es donde surgió la idea de grep fijo. Lo que es ideal para casos de uso en los que necesitas hacer coincidir una cadena exacta.

No presenta las poderosas herramientas de expresión de las otras variantes de grep pero esa debilidad es en realidad su superpoder.

Eso hace que la herramienta sea mucho más rápida.

Como mencioné anteriormente, debes evitar usar egrep y fgrep porque son comandos obsoletos. Usar grep -E y grep -F es el camino a seguir.

Espero que ahora tenga una mejor comprensión de grep, egrep y fgrep. Si tienes algo que agregar, no dude en dejar un comentario.

Relacionado

15 Ejemplos del comando FIND en Linux

El comando de búsqueda (find) se utiliza para buscar archivos y directorios en la línea de comandos de Linux. Find es uno de los comandos más potentes y de mayor uso, es uno de los comandos más extensos con más de 50 opciones diferentes. Eso lo hace un poco confuso, especialmente cuando se combina con el comando exec o xargs. Es imposible que un administrador de ¡SEGUIR LEYENDO!

3 Razones por las que los técnicos deberían aprender Linux

Linux como Mac o Windows OS, es un sistema operativo. Un día se utilizó principalmente para servidores y no era una buena solución para los PC personales. La causa de eso era su interfaz de usuario que era difícil de entender para el usuario más común Sin embargo, los desarrolladores han estado mejorado continuamente el sistema de Linux durante la última década digital y ahora, es ¡SEGUIR LEYENDO!

6 Consejos para mejorar tu experiencia con Flatpak en Linux

If you love using Flatpak applications, here are a few tips, tools, and tweaks to make your Flatpak experience better and smoother.

¿Cómo actualizar de Fedora 35 a Fedora 36?

Red Hat lanzó recientemente una actualización de versión para la estación de trabajo Fedora, sin embargo, no puedes simplemente actualizar escribiendo sudo dnf update en la Terminal. En este artículo, echaremos un vistazo al nuevo Fedora 36 e intentaremos actualizar nuestra instalación de Fedora. Hay dos formas a través de las cuales puede actualizar su instalación, una es la forma gráfica y otra es a través ¡SEGUIR LEYENDO!

AppFlowy: Alternativa de código abierto a Notion

AppFlowy aims to be an open-source replacement to Notion, providing you with better privacy. Let us explore more about it.

Mejores Libros PDF de Programación y Tecnología GRATIS

Los Mejores Libros PDF Gratuitos de Informática. EL sitio perfecto para aprender a programar desde cero para principiantes con las mejores guías gratis. Esta es la mejor lista de libros de programación en PDF en español del mundo. Una completa biblioteca recopilada de cientos y cientos de libros en PDF que no encontrarás en ninguna parte más. Aquí, vas a encontrar libros enfocados hacía programadores. Sobre ¡SEGUIR LEYENDO!

BlendOS: una combinación de Arch Linux, Fedora Linux y Ubuntu

Del mantenedor de Ubuntu Unity y el entorno de escritorio de Unity, llega blendOS, una distribución de GNU/Linux que pretende ser la última distribución que usarás. BlendOS está aquí para ofrecerte "una combinación perfecta de todas las distribuciones de Linux" como su creador lo define. BlendOS se basa en Arch Linux y GNOME pero permite usar aplicaciones de otras distribuciones populares, como Fedora o Ubuntu. Esto ¡SEGUIR LEYENDO!

Deja un comentario

Salir de la versión móvil