Post

Comando Grep

Índice

Definción

Grep, es un comando que se utiliza para filtrar cadenas de texto en ficheros, dentro del podremos utilizar expresiones regulares y mucho más. Este comando es muy potente.

Párametros

  • -E ➜ Permite utilizar expresiones regulares extendidas, grep -E, equivale a egrep.
  • -i ➜ Case Insensitive (No distingue entre mayúsculas y minúsculas)
  • -n ➜ Muestra el numero de linea de las coincidencias.
  • -v ➜ Elimina del output el patrón indicado
  • -P ➜ Expresiones regulares de Perl
  • -o ➜ Solo muestra el patrón, no toda la linea.
  • -A ➜ Permite mostrar un numero de lineas por debajo del patrón.
  • -B ➜ Permite mostrar un numero de lineas por encima del patrón.
  • -C ➜ Permite mostrar un numero de lineas por encima y debajo del patrón.
  • --color ➜ Permite indicar cuando queremos utilizar coloreado para el output (Never, Always y Auto).

Ejemplos de uso

Buscar en un fichero la palabra password, sin distinguir entre mayúsculas y minúsculas y mostras la linea donde se encuentra.

1
cat /etc/secret | grep -n -i "password"

Mostrar el output siempre en formato colorizado.

1
cat /etc/secret | grep "root" --color=always

Expressión regular con Perl para sacar la mac.

1
macchanger -s eth0 | grep -oP "(\S{2}:){5}\S{2}" --color=always | sort -u

Expressión regular con Perl para sacar la ip.

1
ip a | grep -oP "(\d{1,3}\.){3}\d{1,3}" --color=always

Expressión regular extendida para sacar la ip.

1
ip a | grep -oE "([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}" --color=always

Filtrar por varios patrones. Esto podemos hacerlo de 3 formas.

1
cat /etc/passwd | grep "root\|admin"
1
cat /etc/passwd  | egrep "root|admin"
1
cat /etc/passwd  | grep -E "root|admin"

No mostrar el output indicado en el patrón.

1
cat /etc/passwd  | grep -vE "root|admin"

Sacar dos lineas por encima y dos por debajo del output

1
cat /etc/passwd  | grep -i "ROOT" -C 2

Explicación de expresiones regulares

Tenemos varios tipos de datos que podemos utilizar para realizar expresiones regulares. Comenzamos viendo las de perl.

SignoDefinición
.Cualquier caracter salgo el de retorno de carro
^Indica que coincida al principio de la linea
$Indica que coincida al final de la linea
*Aparecera 0 o más veces el caracter que lo procede
+Aparecera 1 o más veces el caracter que lo procede
?Aparecera 0 o 1 veces el caracter que lo procede
{n}Coincide exactamente n veces
{n,}Coincide al menos n veces
{n,m}Coincide al menos n veces y no más de m
\nSalto de linea
\dUn caracter numerico [0-9]
\tTabulador
\wCaracteres alfanúmericos
\sUn caracter de espciado
()Agrupa una serie de patrones

Ahora veremos las que utiliza grep por defecto.

SignoDefinición
.Cualquier caracter salgo el de retorno de carro
^Indica que coincida al principio de la linea
$Indica que coincida al final de la linea
*Aparecera 0 o más veces el caracter que lo procede
+Aparecera 1 o más veces el caracter que lo procede
?Aparecera 0 o 1 veces el caracter que lo procede
{n}Coincide exactamente n veces
{n,}Coincide al menos n veces
{n,m}Coincide al menos n veces y no más de m
\nSalto de linea
[[:digit:]]Un caracter numerico [0-9]
[[:lower:]]Letras en minúscula
[[:upper:]]Letras en mayúscula
\tTabulador
\wCaracteres alfanúmericos
\sUn caracter de espciado
()Agrupa una serie de patrones
This post is licensed under CC BY 4.0 by the author.