comando grep y expresiones regulares
Post on 06-Apr-2017
91 Views
Preview:
TRANSCRIPT
Comando grep yExpresiones RegularesProf. Pablo Macónprofemacon@gmail.comhttp://pablomacon.wix.com/home/
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
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
Comando grepSintaxis:grep [-opciones] PATRÓN [archivo/s]
Ejemplo sencillo:grep “usuario” /etc/passwd
Comando grepTambién podemos combinarlo concatenándolo a otros comandos:
cat /etc/passwd | grep “usuario”
ls /bin | grep “am”
Comando grepOpciones:-e permite introducir varios patrones de
búsquedagrep –e “garcia” –e “flores” usuariosgrep –e “lopez” –e “2005” discos
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é?
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
Comando grepOpciones:-w busca coincidencias de palabras completasgrep –w “garcia” usuariosTrae las líneas que contienen garcia pero no si contiene garcias
Comando grepOpciones:-q modo silencioso, no muestra nada en la salida estándar ¿para qué puede servir entonces?
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
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”
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?
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
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
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?
EXPRESIONES REGULARES - REGLAS
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
Expresiones regulares - reglas2 – un . (punto) significa cualquier carácter, pero solo uno. Es como el ? que utilizamos con ls
grep ‘.ash’ /etc/passwd
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
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
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
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
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
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
top related