Í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 |