Las expresiones regulares o patrones son usadas por algunos comandos en linux para hacer búsquedas y otras tareas, en archivos de texto. Algunos de los comandos que las usan son grep y sed.
Este es un pequeño resumen:
| Expresion regular |
Extendida (egrep) |
Descripción |
| ^ |
|
Match inicio de una línea |
| $ |
|
Match final de una línea |
| \< y \> |
|
Match espacio en blanco, inicio y final de línea. |
| [abc] o [a-z] |
|
Match con carácteres simples.
En el primer ejemplo con a, b o c, y en el segundo con cualquiera del rango. |
| [^a-z] |
|
Match inverso. Cualquier carácter fuera del rango. |
| . |
|
Match con cualquier carácter excepto newline. |
| * |
* |
Match con cero o más instancias del carácter anterior. |
| \? |
? |
Match con cero o una instancia de la expresión regular anterior. |
| \+ |
+ |
Match con una o mas instancias de la expresión regular anterior. |
| \{n,m\} |
{n,m} |
Match un rango de ocurrencias de la expresión regular anterior entre n y m. |
| \| |
| |
Es como una “OR”. |
Sed es un programa que permite filtrar y transformar texto. Sed trabaja con el texto por medio de direcciones y comandos de edición. Las direcciones localizan las líneas, y los comandos modifican el texto.
- Un número de línea o un rango (inicio, final). Ej. (1,$) todas las líneas.
- Una expresion regular de la forma (/expr/).
- Un numero de línea con un intervalo, de la forma n~s, donde n es la línea inicial y s el salto. Ej. 1~2 serían las líneas impares.
d: borrar líneas.
s: sustituciones de la forma s/patron/remplazo/[flags]. Los flags son:
g: remplazar todas las instancias.
n: remplazar la n-ésima instancia.
p: imprimir la lína si se produce una sustitución.
y: transforma carácteres.
Busca un patrón en un archivo o entrada estándar.
-c: cuenta las líneas que hacen match.
-h: muestra las líneas que hacen match.
-i: ignora distinción entre mayúsculas y minúsculas.
-n: muestra números de línea.
-v: match inverso.
-E: expresiones regulares extendidas. Equivale al comando egrep.
$ sed '/^#/d' prueba
Borra líneas de prueba que contengan # al principio de línea.
$ grep -c '^$' prueba
Cuenta el número de líneas vacías de prueba.
$ grep '\<[0-9]\{3,5\}\}\>' prueba
Muestra las líneas que contengan un número de 3, 4 o 5 dígitos.
$ sed 'y/abc/123/' prueba
Transforma los carácteres a, b y c, por 1, 2 y 3 respectivamente.