Top Banner
Comando grep y Expresiones Regulares Prof. Pablo Macón [email protected] http://pablomacon.wix.com/home/
26

Comando grep y expresiones regulares

Apr 06, 2017

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Comando grep y expresiones regulares

Comando grep yExpresiones RegularesProf. Pablo Macó[email protected]://pablomacon.wix.com/home/

Page 2: Comando grep y expresiones regulares

Comando grepUna de las funciones elementales que debe satisfacer una base de datos es permitir consultar los datos guardados en ella.El comando que nos va a permitir efectuar búsquedas dentro de nuestros archivos de texto será: grep

Page 3: Comando grep y expresiones regulares

Comando grepEs un filtro que se aplica a la entrada estándar y que tiene como resultado mostrar en la salida estándar la o las líneas que coinciden con la o las expresiones marcadas. Esas expresiones pueden ser simples palabras o patrones complejos

Page 4: Comando grep y expresiones regulares

Comando grepSintaxis:grep [-opciones] PATRÓN [archivo/s]

Ejemplo sencillo:grep “usuario” /etc/passwd

Page 5: Comando grep y expresiones regulares

Comando grepTambién podemos combinarlo concatenándolo a otros comandos:

cat /etc/passwd | grep “usuario”

ls /bin | grep “am”

Page 6: Comando grep y expresiones regulares

Comando grepOpciones:-e permite introducir varios patrones de

búsquedagrep –e “garcia” –e “flores” usuariosgrep –e “lopez” –e “2005” discos

Page 7: Comando grep y expresiones regulares

Comando grepOpciones:-i ignora distinción entre mayúsculas y

minúsculas (ignore case)grep –i “garcia” usuariosTrae las líneas que contienen Garcia GARCIA garcia GArcia, pero no García ¿por qué?

Page 8: Comando grep y expresiones regulares

Comando grepOpciones:-v muestra las líneas que no coinciden

con el patrón buscadogrep –v “garcia” usuariosTrae las líneas que NO contienen garcia

Page 9: Comando grep y expresiones regulares

Comando grepOpciones:-w busca coincidencias de palabras completasgrep –w “garcia” usuariosTrae las líneas que contienen garcia pero no si contiene garcias

Page 10: Comando grep y expresiones regulares

Comando grepOpciones:-q modo silencioso, no muestra nada en la salida estándar ¿para qué puede servir entonces?

Page 11: Comando grep y expresiones regulares

Comando grepOpciones:-q modo silencioso, no muestra nada en la salida estándar Por ejemplo para utilizarlo como condición en un if y que no muestre lo que estoy buscando

Page 12: Comando grep y expresiones regulares

Comando grepOpciones:-q modo silencioso, no muestra nada en la salida estándar if grep –q “usuario” /etc/passwdthen echo “usuario autorizado”else echo “usuario no autorizado”

Page 13: Comando grep y expresiones regulares

EXPRESIONES REGULARES

Page 14: Comando grep y expresiones regulares

Expresiones regularesSon patrones regulares que permiten buscar cosas que tienen una forma determinada pero que no siempre es igual:Direcciones de e-mail, cédulas de identidad¿Qué ejemplos se les ocurren?

Page 15: Comando grep y expresiones regulares

Expresiones regularesPor ejemplo las direcciones de e-mail se pueden descomponer de:Una serie de caracteres que pueden incluir, letras, números y algunos símbolos especiales + @ + otros caracteres + . + com/gub/edu/tv/us/fr/uy

Page 16: Comando grep y expresiones regulares

Expresiones regularesPor ejemplo las ip se componen de:Un número del 0 al 255 + . + un número del 0 al 255 + . + un número del 0 al 255 + . + un número del 0 al 255

Page 17: Comando grep y expresiones regulares

Expresiones regularesNuestro trabajo es encontrar esas regularidades que luego nos van a simplificar las cosas, porque si queremos buscar todos los usuarios que tienen cédula y no RUT ¿cómo podríamos hacerlo si no es con expresiones regulares?

Page 18: Comando grep y expresiones regulares

EXPRESIONES REGULARES - REGLAS

Page 19: Comando grep y expresiones regulares

Expresiones regulares - reglas1 - uno o varios caracteres cualquiera, encerrados en comillas simples van a tener como resultado de la búsqueda a esos mismos caracteres en el mismo orden

grep ‘pablo’ /etc/passwd

Page 20: Comando grep y expresiones regulares

Expresiones regulares - reglas2 – un . (punto) significa cualquier carácter, pero solo uno. Es como el ? que utilizamos con ls

grep ‘.ash’ /etc/passwd

Page 21: Comando grep y expresiones regulares

Expresiones regulares - reglas3 – los corchetes (paréntesis rectos) se usan para encerrar un rango de caracteres o varios caracteres diferentes, pero solo un carácter por vez:

grep ‘100[0-9]’ /etc/passwd

Page 22: Comando grep y expresiones regulares

Expresiones regulares - reglas4 – ^ es la negación, va a traer las líneas que no contengan los caracteres que le siguen

grep ‘alo[^n]so’ /etc/passwd

Page 23: Comando grep y expresiones regulares

Expresiones regulares - reglas5 – las llaves encierran el número de veces que se repite el/los caracteres anteriores, si son varios caracteres tenemos que agruparlos con paréntesisgrep –iE ‘([0-9a-f][0-9a-f]:){5}([0-9a-f][0-9a-f])’ regex

Page 24: Comando grep y expresiones regulares

Expresiones regulares - reglas• 6 – los símbolos de menor y mayor nos

sirven para delimitar la palabra• < para inicio de palabra• > para fin de palabra• Pero necesitamos poner la \ delante de

ellos

Page 25: Comando grep y expresiones regulares

Expresiones regulares - reglas• 6 – los símbolos de menor y mayor nos

sirven para delimitar la palabra•Así para buscar las palabras de 4 letras

mínimo y 5 máximo ponemos:grep –iE ‘\<[a-z]{4,5}\>’ /etc/passwd

Page 26: Comando grep y expresiones regulares

Expresiones regulares - reglasLas cédulas de los usuariosgrep –E ‘[0-9]{6-7}-[0-9]’ usuarios

una dirección ipgrep –E ‘([0-9]{1,3}\.){3}([0-9]{3})’ usuarios