comando grep y expresiones regulares
TRANSCRIPT
![Page 1: Comando grep y expresiones regulares](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/1.jpg)
Comando grep yExpresiones RegularesProf. Pablo Macó[email protected]://pablomacon.wix.com/home/
![Page 2: Comando grep y expresiones regulares](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/3.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/4.jpg)
Comando grepSintaxis:grep [-opciones] PATRÓN [archivo/s]
Ejemplo sencillo:grep “usuario” /etc/passwd
![Page 5: Comando grep y expresiones regulares](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/5.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/7.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/8.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/9.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/10.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/11.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/12.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/13.jpg)
EXPRESIONES REGULARES
![Page 14: Comando grep y expresiones regulares](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/14.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/15.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/16.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/17.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/18.jpg)
EXPRESIONES REGULARES - REGLAS
![Page 19: Comando grep y expresiones regulares](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/19.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/20.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/21.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/22.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/23.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/24.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/25.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062218/58e5e2e31a28ab38148b4b4f/html5/thumbnails/26.jpg)
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