¿Cuál es la diferencia entre GREP, EGREP y FGREP en Linux??

¿Cuál es la diferencia entre GREP, EGREP y FGREP en Linux??

Una de la herramienta de búsqueda de renombre en sistemas similares a UNIX que se puede utilizar para buscar cualquier cosa, ya sea un archivo, una línea o múltiples líneas en el archivo es GREP Utility. Es una funcionalidad muy vasta que se puede atribuir a la gran cantidad de opciones que admite: buscar el uso del patrón de cadena, o patrón reg-ex o reg-ex basado en Perl, etc.

Diferencia entre GREP, EGREP y FGREP en Linux

Debido a sus diferentes funcionalidades, tiene muchas variantes, incluidas grep, municipal (Grep extendido), fgrep (Grep Grep), pgrep (Proceso de GREP), rgrep (Grep recursivo) etc. Pero estas variantes tienen diferencias menores al original grep que los ha hecho populares y ser utilizado por varios programadores de Linux para tareas específicas.

Lo principal que queda por investigar es cuáles son las diferencias entre las tres variantes principales I.mi. 'Grep', 'Egrep' y 'fgrep' de GREP que hace que los usuarios de Linux elijan una u otra versión según los requisitos.

Algunos meta-personajes especiales de Grep

  1. + - Equivalente a uno o más ocurrencias de carácter anterior.
  2. ? - Esto denota casi 1 repetición del personaje anterior. Como: a? Coincidiría con 'a' o 'Automóvil club británico'.
  3. ( - Inicio de la expresión de alternancia.
  4. ) - Fin de la expresión de alternancia.
  5. | - Coincidir cualquiera de la expresión separada por '|'. Como: "(A | B) CDE" coincidiría con 'a B C D e' o 'bbcde'.
  6. - Este meta-caracteres indica el inicio del rango del especificador. Como: "A 2" partidos "Automóvil club británico" En el archivo I.mi. A 2 veces.
  7. - Este meta-caracteres indica el final del rango del especificador.

Diferencias entre GREP, EGREP y FGREP

Algunas diferencias principales entre grep, municipal y fgrep se puede resaltar de la siguiente manera. Para este conjunto de ejemplos, asumimos que el archivo en el que se realiza la operación es:

Comando Linux GREP

Comando GREP

grep o Impresión de expresión regular global es el programa de búsqueda principal en sistemas similares a Unix que puede buscar cualquier tipo de cadena en cualquier archivo o lista de archivos o incluso salida de cualquier comando.

Leer sugerido: 12 Ejemplos prácticos del comando Linux GREP

Usa Expresiones regulares básicas Aparte de las cadenas normales como patrón de búsqueda. En expresiones regulares básicas (BRE), los meta-carácter les gusta: '', '','(', ')','|','+','?' pierda su significado y se tratan como caracteres normales de la cuerda y necesitan ser escapadas para que se traten como caracteres especiales.

Leer sugerido: 11 Advanciar comandos 'GREP' en clases de caracteres y expresiones de soporte

Además, GREP utiliza algoritmo Boyer-Moore para buscar rápidamente cualquier cadena o expresión regular.

$ grep -c 0 '(f | g) ile' check_file $ grep -c 0 '\ (f \ | g \) ile' check_file 
Ejemplo de comando de Linux GREP

Como aquí, cuando el comando se ejecuta sin escapar '(")' y '|' Luego buscó la cadena completa I.mi. "(F | g) ile" en el archivo. Pero cuando se escaparon los caracteres especiales, en lugar de tratarlos como parte de la cadena, Grep los trató como metacturadores y buscó palabras "archivo" o "Gile" en el archivo.

Comando EGREP

Municipal o grep -mi es otra versión de GREP o el Grep EXTENDE. Esta versión de GREP es eficiente y rápida cuando se trata de buscar un patrón de expresión regular, ya que trata a los metacturadores como es y no los sustituye como cuerdas como en Grep, y por lo tanto, está liberado de la carga de escapar de ellos como en Grep. Usa ERE o el conjunto de expresiones regulares extendidas.

En el caso de EGREP, incluso si no escapa a los metacturadores, los trataría como caracteres especiales y los sustituiría por su significado especial en lugar de tratarlos como parte de la cadena.

$ egrep -c 0 '(f | g) ile' check_file $ egrep -c 0 '\ (f \ | g \) ile' check_file 
Ejemplos de comandos de egrep de Linux

Como aquí, municipal buscado para "archivo" Cadena cuando los meta-caracteres no fueron escapados, como significaría por el significado de estos caracteres. Pero, cuando se escaparon a estos caracteres, el egrep los trató como parte de la cadena y buscó una cadena completa "(F | g) ile" en el archivo.

comando FGREP

Fgrep o el Grep Grep o grep -f es otra versión de Grep que es rápida en la búsqueda cuando se trata de buscar toda la cadena en lugar de la expresión regular, ya que no reconoce las expresiones regulares, ni ningún metactor. Para buscar cualquier cadena directa, esta es la versión de GREP que debe seleccionarse.

FGREP busca una cadena completa y ni siquiera reconoce caracteres especiales como parte de la expresión regular, incluso si se escapan o no se escapan.

$ fgrep -c 0 '(f | g) ile' check_file $ fgrep -c 0 '\ (f \ | g \) ile' check_file 
Ejemplos de comando de Linux FGREP

Como, cuando no se escaparon de los meta-carácter, FGREP buscó la cadena completa "(F | g) ile" En el archivo, y cuando se escaparon los metasconteros, el comando FGREP buscó "\ (F \ | g \) ile" Todos los caracteres como están en el archivo.

Ya hemos cubierto algunos ejemplos prácticos de comando GREP, puede leerlos aquí, si desea obtener más de GREP Command en Linux.

Aprenda 12 ejemplos prácticos del comando Linux GREP

Conclusión

Arriba se destacan las diferencias entre 'Grep', 'Egrep' y 'fgrep'. Además de la diferencia en el conjunto de expresiones regulares utilizadas, y la velocidad de ejecución, los parámetros de línea de comandos REST siguen siendo las mismas para las tres versiones de GREP e incluso en lugar de "egrep" o "fgrep", "grep -e" o "grep - F ”se recomienda utilizar.

Si encuentra otras diferencias entre estas tres versiones de GREP, mencionas en tus comentarios.