PDF de programación - regex - Expresiones regulares

Imágen de pdf regex - Expresiones regulares

regex - Expresiones regularesgráfica de visualizaciones

Publicado el 15 de Febrero del 2020
350 visualizaciones desde el 15 de Febrero del 2020
91,4 KB
5 paginas
Creado hace 9a (21/12/2010)
Expresiones Regulares

Expresiones Regulares – regex o regexp (regular expresions)

Que es:

Una expresión regular es un patrón que nos permite buscar un texto
formado por metacaracteres (o caracteres especiales) y caracteres ordinarios.

Los metacaracteres son ciertos caracteres con un significado específico
dentro de una expresión regular. Tienen un comportamiento especial en una
expresión regular.

Para que usan:

Las expresiones regulares son una característica que soportan algunas ordenes
y aplicaciones que permiten realizar búsquedas avanzadas y manipular ficheros
de texto.

Así permiten, manejar con mucha potencia nombres de archivos largos,
realizar búsquedas muy complejas, ejecutar comandos sobre grupos de
archivos concretos...

La gran mayoría de aplicaciones y ordenes de consola en GNU/Linux permiten
el uso de expresiones regulares (ej: grep, vi, sed, awk, find, perl...) Pero el
uso de las expresiones regulares puede variar de unas aplicaciones a otras, y
no todas las aplicaciones permiten usar todas las características de las
expresiones regulares.

Caracteres Especiales o Metacaracteres en Expresiones Regulares

*

?

[]

sustituye o equivale a cero o un grupo de caracteres cualquiera
$ ls -l /var/log/*.log
sustituye a un único carácter cualquiera
$ ls -l /var/log/u?e*.log
sustituye a un único carácter especificado dentro de un rango de
valores cualquiera
$ ls -l /var/log/[aeiou]*.log

[a-z] => letras minúsculas
[A-Z] => letras mayúsculas
[0-9] => números
[A-Za-z] => letras del alfabeto
[A-Za-z0-9] => todos los caracteres alfanuméricos
[^a-z] => El símbolo ^ es el de negación. Luego abarca a cualquier
carácter exceptuando letras minúsculas.
[^0-9] => Cualquier carácter menos los números.

^

$

{}

\

1) Por un lado se utiliza para negar un rango de valores cuando se
usa dentro los corchetes.
$ ls -l /var/log/s[^aeiou]*

2) Y por otro lado se utiliza para indicar el principio de línea.
$ grep ^sy /etc/passwd
Se utiliza para indicar el final de linea
$ grep /bin/bash$ /etc/passwd

1) Sustituye a un grupo de caracteres que hayamos establecido
$ ll /var/log/{*.gz,*.log}
se utiliza para deshabilitar las funciones de otros caracteres especiales
como: * ? [ ] & ; > < |

Ejemplos de expresiones regulares complejas:

- Para sacar direcciones de email de una URL:
wget -qO - URL | grep -Eoi '\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]
{2,4}'

- Buscar direcciones IP's:
grep -Eo '\b[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\b'
/var/log/syslog | sort -u

Redirecciones

>

Salida Estándar o Redireccionamiento de Salida (stdout). Usa el
descriptor de archivos 1.
> = 1>

>>

2>

NOTA: si el fichero destino existe, MACHACA SU CONTENIDO. Si el
fichero destino NO existe, lo crea.
$ ls -l / > arbol-raiz.txt

Lo mismo que >, pero si el fichero destino existe, añade la salida al
final del fichero. Si el fichero destino NO existe, lo crea.

Salida de Errores o Redireccionamiento de Errores (stderr). Usa el
descriptor de archivos 2.

NOTA: si el fichero destino existe, MACHACA SU CONTENIDO. Si el
fichero destino NO existe, lo crea.
$ cat /etc/fichero-que-no-existe 2> errores.txt

2>>

Lo mismo que 2>, pero si el fichero destino existe, añade la salida al
final del fichero. Si el fichero destino NO existe, lo crea.

2>&1

<

Para redirigir ambas salidas (> DESTINO 2>&1):
$ cat /etc/no-existe /etc/fstab > error.txt 2>&1
$ cat /etc/no-existe /etc/fstab > error.txt 2> error.txt
Para redireccionar las ambas salidas a ninguna parte, se
usa el dispositivo /dev/null:
# tar zcvf backup-etc.tar.gz /etc > /dev/null 2>&1

Entrada Estándar o Redireccionamiento de Entrada (stdin). Usa el
descriptor de archivos 0.
$ sort < fichero.txt
$ wc -l < fichero.txt
$ tr ' [a-z]' '[A-Z]' < fichero.txt
$ cat fichero.txt | tr ' [a-z]' '[A-Z]'

Otros Caracteres Especiales

|

;

&

&&

||

Tubería o pipeline. Permite ejecutar un comando y hacer que el
resultado de éste sea la entrada para otro comando.
$ cat fichero.txt | tr ' [a-z]' '[A-Z]'
$ ps ax | grep ftp
Para visualizar cómodamente cualquier fichero y
paginarlo con less:
# ccze -A < /var/log/mail.log | less -R
Para ver la ocupación de los slots de memoria:
# dmidecode --type memory | grep Size

permite ejecutar varias ordenes secuencialmente. Es decir
ejecutar una tras otra.
$ mkdir /home/usuario/imagenes;
cd /home/usuario/imagenes

(ampersand) se utiliza para ejecutar un comando en segundo
plano (background), es decir que permite liberar la consola para
otros usos, mientras se ejecuta dicho comando. Se pone al final
de la orden.
# tar zcf home.tar.gz /home &

equivale a una AND lógica (y). Permite ejecutar un segundo
comando siempre y cuando el primero se haya ejecutado
correctamente.
# tar zcf home.tgz /home && tar zcf etc.tgz /etc
# umount /mnt/cdrom && eject /dev/cdrom

equivale a una OR lógica (o). Permite ejecutar un segundo
comando siempre y cuando el primero NO se haya ejecutado
correctamente.
# tar zcf home.tgz /home || tar zcf
/mnt/disco2/home.tgz /home

'texto'

"texto"

comillas simples. permiten deshabilitar todos los caracteres
especiales que haya dentro
$ echo 'La variable $HOME nos informa cual es nuestra
home'
Salida: La variable $HOME nos informa cual es nuestra
home

comillas dobles. igual que el anterior exceptuando que NO se deshabilita el
carácter $ o ` (comilla invertida)
$ echo “La variable $HOME nos informa cual es nuestra
home”
Salida: La variable /home/usuario nos informa cual es
nuestra home

`comando` comillas invertidas. expansión de ordenes. Permite que la salida

de un comando sea el argumento de otro comando
# tar zcf home-`date +%d*%m*%y`.tar.gz /home/

$

1) Por un lado sirve para sacar el contenido de las variables
definidas por un usuario
$ echo $HOME

($HOME, $PS1, $PWD, $PATH, )

2) Por otro lado sirve para sacar los valores de los parámetros
pasados a un script

3) También se utiliza para la expansión de ordenes.
$(comando) - es lo mismo que `comando`
  • Links de descarga
http://lwp-l.com/pdf17290

Comentarios de: regex - Expresiones regulares (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad