1.3 Utilizar expresiones regulares y grep para analizar texto

Regex (Expresiones Regulares)

Caracteres especiales y metacaracteres que ayudan a ampliar las búsquedas en el bash de Linux, es decir la expresión se expande, utilizadas frecuentemente por lo comandos find, grep, sed, awk

Los metacaracteres son ciertos caracteres con un significado específico dentro de una expresión regular. Estos caracteres tienen un significado que va más allá del símbolo que representan y tienen un comportamiento especial en una expresión regular.

 

.            Punto; Corresponde a cualquier carácter simple

*           Asterisco; Un número N de caracteres simples, también llamado comodín

           Comillas simples; los comandos y/o variables entre estas comillas no son procesados:

          Comillas dobles; Las variables entre estas comillas son procesada pero los comandos no.

`            Acento grave; variables y comandos entre este carácter no son procesados

~          Virgulilla representa el directorio Home del usuario actual

^          Acento circunflejo; específica comúnmente el principio de una línea especialmente en una búsqueda.

[^]       Corresponde a todos los caracteres excepto a los especificados en los corchetes

$          Específico Variable o la finalización de una línea.

\           permite omitir el significado de una expresión.

{}         Llaves; encierran funciones

!            También conocido como bang, el cual niega un intento de rango (excepto)

Comando grep y las expresiones regulares

Procesador Generalizado de Expresiones Regulares (grep), grep busca en líneas el de texto el patrón dado, buscando en los archivos especificados o en la entrada estándar (stdin) si no se especifica algún archivo.

Opciones:

-e         soporta todas las búsquedas, utilizado comúnmente para proteger patrones que comiencen con guión (-)

-i          deshabilita Case Sensitive

-i          se detiene cuando encuentra la primera coincidencia y la muestra

-v         invierte la búsqueda

Ejemplos:

Muestra las líneas con la palabra “media” dentro del archivo /etc/passwd

 

franklin:x:501:501::/home/frank:/bin/bash

 

Muestra las líneas SIN la palabra “franklin” dentro del archivo /etc/passwd

 

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

Muestra las líneas que contenga el carácter * dentro del archivo /etc/samba/smb.conf

 

veto files =  /*.avi/*.mpg/*.flv/*.mov/*.wmv/*.rm/*.flv/

 

Muestra las líneas que contengan un número de tres caracteres el primer carácter en un rango de 1 a 1, el segundo de 5 a 8 y el tercero que sea cero 0

 

avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin

 

Todas las líneas que inicien con palabra media

 

media:x:501:501::/home/media:/bin/bash

 

Todas las líneas que terminen con palabra ries

 

comment = Home Directories

 

No mostrar las líneas que contengan la el carácter # al principio de la línea

 

pathmunge () {

   case “:${PATH}:” in

       *:”$1″:*)

           ;;

       *)

           if [ “$2” = “af

Comando egrep

Suele dar el mismo resultado egrep que grep -E ya que es una extensión del comando grep donde algunos caracteres como +? | () fungen como expresiones regulares.

 

root:x:0:0:root:/root:/bin/bash

franklin:x:500:500::/home/franklin:/bin/bash

media:x:501:501::/home/media:/bin/bash

 

 

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

media:x:501:501::/home/media:/bin/bash

 

 

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

media:x:501:501::/home/media:/bin/bash

Comando fgrep

Suele dar el mismo resultado egrep que grep -f, conocido como grep fijo o grep rápido y no reconoce expresiones regulares

 

media:x:501:501::/home/media:/bin/bash

 

 

media:x:501:501::/home/media:/bin/bash

@franklinux

  

Deja un comentario