Í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.
Signo | Definició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 |
\n | Salto de linea |
\d | Un caracter numerico [0-9] |
\t | Tabulador |
\w | Caracteres alfanúmericos |
\s | Un caracter de espciado |
() | Agrupa una serie de patrones |
Ahora veremos las que utiliza grep por defecto.
Signo | Definició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 |
\n | Salto de linea |
[[:digit:]] | Un caracter numerico [0-9] |
[[:lower:]] | Letras en minúscula |
[[:upper:]] | Letras en mayúscula |
\t | Tabulador |
\w | Caracteres alfanúmericos |
\s | Un caracter de espciado |
() | Agrupa una serie de patrones |