GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial del comando fgrep de Linux para principiantes (con ejemplos)

Si bien grep es un comando de Linux muy conocido (ya lo hemos cubierto en detalle), ¿sabe que existen dos variantes diferentes de esta herramienta? Sí, estos son egrep y fgrep . En este tutorial, discutiremos este último (fgrep) usando ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos e instrucciones mencionados en este tutorial han sido probados en Ubuntu 16.04LTS.

comando fgrep de Linux

Si echa un vistazo a la documentación oficial, la página de manual para el comando grep dice que fgrep no es más que grep -F. También dice que las variantes como fgrep y egrep solo se proporcionan para la compatibilidad con versiones anteriores. Hablaremos de estos detalles más adelante en este tutorial.

Mientras tanto, aquí está la sintaxis de fgrep (que es la misma que la de grep):

grep [OPTIONS] PATTERN [FILE...]

Y así es como la página de manual del comando grep explica la herramienta:

grep searches the named input FILEs for lines containing a match to the given PATTERN. If no files 
are specified, or if the file “-” is given, grep searches standard input. By default, grep prints
the matching lines.

Los siguientes ejemplos con estilo de preguntas y respuestas deberían darle una mejor idea de cómo funciona fgrep.

P1. ¿En qué se diferencia fgrep de grep y egrep?

El comando fgrep difiere tanto de grep como de egrep en el sentido de que interpreta PATRÓN como una lista de cadenas fijas (en lugar de expresiones regulares), separadas por saltos de línea.

Como se dice que es lo mismo que grep -F, así es como un experto explicó la opción -F de grep en StackExchange:

The -F switch switches grep into a different mode where it accepts a pattern to match, but then 
splits that pattern up into one search string per line and does an OR search on any of the strings
without doing any special pattern matching.

P2. ¿Cómo usar fgrep?

Para comprender el uso de fgrep, primero tomemos un ejemplo básico. Supongamos que hay un archivo (archivo1) que contiene los siguientes contenidos:

Y hay otro archivo (words.txt) que contiene una lista de palabras que queremos buscar en el archivo1.

Así es como puedes usar fgrep para realizar esta búsqueda:

fgrep -f words.txt file1

Entonces puede ver que las palabras que se encontraron se resaltaron en rojo. Ahora, algunos de ustedes pueden argumentar que eso es lo que grep y egrep también harían en este caso, entonces, ¿en qué difiere fgrep?

En primer lugar, sí, tienes razón. El comando grep y egrep también produciría un resultado similar:

Pero la diferencia será clara en el caso de que archivo1 y palabras.txt contengan los siguientes contenidos (observe los caracteres especiales dentro de las palabras):

Aquí, egrep y grep no podrán encontrar todas las palabras:

Pero fgrep funcionará según lo previsto:

P3. ¿Realmente no hay diferencia entre fgrep y grep?

Según la documentación oficial, no hay ninguna diferencia entre fgrep y el comando grep -F. Sin embargo, según los informes, existe una diferencia importante entre las dos herramientas:el algoritmo de coincidencia de cadenas que utilizan. Mientras que fgrep usa el algoritmo Aho-Corasick, grep usa una versión modificada de Commentz-Walter.

"Esto significa que grep tiene una complejidad O(mn) en el peor de los casos, mientras que fgrep es en el peor de los casos O(m+n)", dice un experto en los foros de StackExchange.

Conclusión

Como es evidente, el comando fgrep no es difícil de entender y usar. En cuanto a la diferencia entre fgrep y grep -F, aunque ya notamos los puntos en el tercer trimestre, creemos que este problema no debería molestar a una gran parte de los usuarios. En caso de que tenga dudas o tenga una consulta relacionada con fgrep, compártala con nosotros dejando un comentario a continuación.


Linux
  1. Linux expand Command Tutorial para principiantes (con ejemplos)

  2. Tutorial de comando de factor Linux para principiantes (con ejemplos)

  3. Tutorial de comando yes de Linux para principiantes (con ejemplos)

  4. Tutorial de comandos para usuarios de Linux para principiantes (con ejemplos)

  5. Tutorial de comando Linux sum para principiantes (con ejemplos)

Tutorial de comando Linux sha1sum para principiantes (con ejemplos)

Tutorial de comandos de apariencia de Linux para principiantes (con ejemplos)

Tutorial del comando lsattr de Linux para principiantes (con ejemplos)

Tutorial del comando tload de Linux para principiantes (con ejemplos)

Tutorial del comando Linux znew para principiantes (con ejemplos)

Tutorial de comando Linux tr para principiantes (con ejemplos)