GNU/Linux >> Tutoriales Linux >  >> Linux

El tutorial de comando Grep con ejemplos para principiantes

En este tutorial, vamos a aprender sobre "grep" dominio. Grep significa G r global e regular expresión x p imprimir Como su nombre lo indica, Grep se utiliza para buscar archivos de texto con expresiones regulares. (en breve regex ). Imprime las líneas que coinciden con el patrón dado en un archivo de texto. Si no se proporciona ningún archivo, grep buscará recursivamente el patrón dado en los archivos del directorio actual. Grep tiene dos variantes, a saber, egrep y fgrep . Estas variantes están en desuso, pero se proporcionan por compatibilidad con versiones anteriores. En lugar de usar "grep -E" y "grep -F", puede usar "egrp" y "fgrep", respectivamente. Sin más preámbulos, comencemos.

Ejemplos de comandos Grep

Tengo un archivo llamado file.txt con algunas palabras al azar. Echemos un vistazo a file.txt:

$ cat file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
hello world
HELLO world

Para comenzar la búsqueda, simplemente escriba grep seguido de lo que está buscando y desde dónde lo está buscando. Por ejemplo, voy a buscar la cadena "nix" en archivo.txt. Para hacerlo, ejecuto:

$ grep nix file.txt

Salida de muestra:

ostechnix
Ostechnix
o$technix
unix

Como puede ver en el resultado anterior, tenemos dos palabras que contienen el patrón coincidente "nix". Si la cadena de búsqueda tiene dos palabras, menciónelas entre comillas simples como se muestra a continuación.

$ grep 'hello world' file.txt 
hello world

También puede usar -n bandera para mostrar los números de línea en la salida:

$ grep -n nix file.txt

Salida de muestra:

1:ostechnix
2:Ostechnix
3:o$technix
6:unix

Esto puede ser útil cuando trabaja con un código muy largo.

Tenga en cuenta que grep distingue entre mayúsculas y minúsculas . Por ejemplo, cuando busca "os" , no va a mostrar líneas que contengan letras mayúsculas, es decir, Os.

Compruebe el siguiente ejemplo.

$ grep os file.txt 
ostechnix

Pero tengo otra palabra llamada "Ostechnix" en file.txt, pero grep no la incluyó.

Sin embargo, si desea ignorar mayúsculas y minúsculas, puede usar "-i" marca como a continuación.

$ grep -i os file.txt 
ostechnix
Ostechn1x
$ grep -i 'hello world' file.txt 
hello world
HELLO world

Ahora, a grep no le importó el caso y obtuvimos las palabras que contienen letras mayúsculas y minúsculas en el resultado.

También podemos canalizar una salida de un comando a grep. Echa un vistazo al siguiente ejemplo.

$ cat file.txt | grep os
ostechnix

Ahora mira lo que tenemos. La salida del archivo.txt se canaliza a grep y se muestran las palabras que contienen las letras "os" en el archivo.txt.

También podemos usar algunos caracteres especiales o expresiones regulares en grep.

  • ^ - buscar al principio de la línea.
  • $ - buscar al final de la línea.
  • . - Buscar cualquier personaje.

Déjame mostrarte un ejemplo, para que puedas entender dónde y cómo usar esos caracteres especiales.

Ya lo sabes, podemos buscar las palabras que contienen la cadena "tech" como a continuación.

$ grep tech file.txt
ostechnix
Ostechnix
o$technix
technology

Pero, ¿qué sucede si solo desea buscar las líneas que solo comienzan con la palabra "tecnología"? No desea mostrar todas las palabras que contienen la cadena, sino solo las palabras que tienen la cadena "tecnología" al principio. También es posible. Aquí es donde los caracteres especiales resultan útiles.

Para buscar las palabras que coincidan con el patrón "tecnología" al comienzo de la línea en un archivo, ejecute:

$ grep ^tech file.txt
technology

Del mismo modo, podemos buscar las palabras que terminan con una o varias letras en particular, por ejemplo "x" , como a continuación.

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Además, puede encontrar las palabras que contienen cualquier carácter usando . (punto).

Por ejemplo, busquemos cualquier palabra que tenga "n" en el archivo.

$ grep .n file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology

Ahora debería tener una comprensión básica del uso de grep. Avancemos y aprendamos las otras dos variantes, a saber, egrep y fgrep .

Ejemplos de comandos Egrep

egrep significa e grep extendido . Es similar a "grep -E" dominio. Hará todas las cosas que hará grep. Sin embargo, proporciona algunas funcionalidades adicionales, como el uso de expresiones regulares complicadas, que el comando grep normal listo para usar.

Por ejemplo, podemos buscar cualquier palabra que comience con "l" o "o" .

Recuerde que usamos el símbolo de intercalación (^) para buscar palabras al comienzo de la línea. Por lo tanto, nuestro comando para la consulta anterior será:

$ egrep '^(l|o)' file.txt
ostechnix
o$technix
linux
linus

¿Ver? Tenemos todas las palabras que comienzan con "l" o "o". Tenga en cuenta que el comando grep normal no puede hacer esto.

Del mismo modo, podemos buscar las líneas que comienzan con cualquier rango de caracteres entre "l" a "u". Eso significa que obtendremos las líneas que comienzan con l, m, n, o, p, q, r, s, t y u. Todo lo demás se omitirá del resultado.

$ egrep '^[l-u]' file.txt
ostechnix
o$technix
linux
linus
unix
technology

Tenga en cuenta que he usado corchetes ([) para buscar el rango de palabras. Dado que grep distingue entre mayúsculas y minúsculas, no encontrará líneas que comiencen con letras mayúsculas en el rango dado.

Para mostrar todas las líneas que comienzan con letras mayúsculas y minúsculas, usamos:

$ egrep '^[l-u]|[L-U]' file.txt

O,

$ egrep '^([l-u]|[L-U])' file.txt

Salida de muestra:

ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
HELLO world

¿Ver? Ahora tenemos las palabras que comienzan con el rango de caracteres "l" a "u" (ya sea en mayúsculas o minúsculas).

Ejemplos de comandos Fgrep

fgrep significa f ast grep . Es similar a "grep -F" . fgrep no puede reconocer expresiones regulares o caracteres especiales. fgrep se puede usar donde desea que se evalúen las expresiones regulares.

Por ejemplo, usamos el siguiente comando para encontrar las palabras que terminan en "x" .

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Ahora ejecute el mismo comando con fgrep.

$ fgrep x$ file.txt

No mostrará nada porque no pudo evaluar los caracteres especiales.

Ahora veamos otro ejemplo. Para buscar las palabras que coincidan con la cadena "o$" con el comando grep, hacemos:

$ grep o$ file.txt

Pero, no conseguimos nada, ¿por qué? Porque, según el comando anterior, usamos el símbolo de dólar ($) para encontrar las palabras que terminan en "o". Como no había caracteres que terminaran en "o" en el archivo.txt, no obtenemos nada.

Ahora, ejecuta el mismo comando con fgrep.

$ fgrep o$ file.txt 
o$technix

¿Ver? Aquí es donde usamos el comando fgrep. Simplemente ignora el símbolo del dólar (el carácter especial, por supuesto) y muestra la palabra que contiene la cadena "o$".

Para obtener más detalles sobre grep, escriba:

$ grep --help

Dará todas las opciones posibles. O consulte las páginas del manual.

$ man grep

Lectura sugerida:

  • Aprenda a usar las páginas man de manera eficiente
Etimología de grep

Grep fue escrito de la noche a la mañana por Ken Thompson , el mismo tipo que escribió Unix. Pero, ¿por qué y cómo obtuvo su nombre? Profesor Brian Kernighan explica la etimología de grep en este video.

Y eso es todo. Grep es uno de los comandos importantes que debes aprender a fondo.

Ahora sabe qué es grep y cómo usarlo para buscar archivos de texto con patrones coincidentes en GNU/Linux. También aprendiste cómo Grep obtuvo su nombre. Espero que esto haya sido útil.


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. El tutorial del comando Numfmt con ejemplos para principiantes

  5. El tutorial de comando Type con ejemplos para principiantes

El tutorial del comando Fold con ejemplos para principiantes

El tutorial del comando df con ejemplos para principiantes

El tutorial de Top Command con ejemplos para principiantes

El tutorial del comando mktemp con ejemplos para principiantes

El tutorial de comandos Uniq con ejemplos para principiantes

El tutorial del comando fc con ejemplos para principiantes