Awk

Cómo usar Regex con el comando 'awk'

Cómo usar Regex con el comando 'awk'

Una expresión regular (regex) se usa para encontrar una secuencia dada de caracteres dentro de un archivo. Se pueden utilizar símbolos como letras, dígitos y caracteres especiales para definir el patrón. Varias tareas se pueden completar fácilmente mediante el uso de patrones de expresiones regulares. En este tutorial, le mostraremos cómo usar patrones de expresiones regulares con el comando 'awk'.

Los caracteres básicos utilizados en los patrones

Se pueden usar muchos caracteres para definir un patrón de expresiones regulares. Los caracteres más utilizados para definir patrones de expresiones regulares se definen a continuación.

Personaje Descripción
. Coincide con cualquier carácter sin una nueva línea (\ n)
\ Citar un nuevo meta-personaje
^ Coincide con el comienzo de una línea
PS Coincide con el final de una línea
| Definir una alternativa
() Definir un grupo
[] Definir una clase de personaje
\ w Coincidir con cualquier palabra
\s Coincide con cualquier carácter de espacio en blanco
\D Coincide con cualquier dígito
\B Coincidir con cualquier límite de palabra

Crea un archivo

Para seguir este tutorial, cree un archivo de texto llamado productos.TXT. El archivo debe contener cuatro campos: ID, Nombre, Tipo y Precio.

ID Nombre Tipo Precio

p1001 Monitor de 15 "Monitor $ 100

p1002 A4tech Mouse Ratón $ 10

p1003 Impresora Samsung Impresora $ 50

p1004 Escáner Escáner HP $ 60

p1005 Ratón Logitech Mouse $ 15

Ejemplo 1: definir un patrón de expresiones regulares utilizando la clase de caracteres

El siguiente comando 'awk' buscará e imprimirá líneas que contengan el carácter 'n' seguido de los caracteres 'er'.

$ productos para gatos.TXT
$ awk '/ [n] [er] / print $ 0' productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La salida muestra la línea que coincide con el patrón. Aquí, solo una línea coincide con el patrón.

Ejemplo 2: definir un patrón de expresiones regulares usando el símbolo '^'

El siguiente comando 'awk' buscará e imprimirá líneas que comiencen con el carácter 'p' e incluyan el número 3.

$ productos para gatos.TXT
$ awk '/ ^ p.* 3 / imprimir $ 0 'productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. Aquí, hay una línea que coincide con el patrón.

Ejemplo 3: definir un patrón de expresiones regulares usando la función gsub

La gsub () La función se utiliza para buscar y reemplazar texto globalmente. El siguiente comando 'awk' buscará la palabra 'Escáner' y la reemplazará con la palabra 'Enrutador' antes de imprimir el resultado.

$ productos para gatos.TXT
Productos $ awk 'gsub (/ Scanner /, "Router")'.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. Hay una línea que contiene la palabra 'Escáner', y 'Escáner'se reemplaza por la palabra'Enrutador'antes de que se imprima la línea.

Ejemplo 4: definir un patrón de expresiones regulares con '*'

El siguiente comando 'awk' buscará e imprimirá cualquier cadena que comience con 'Mo' e incluya cualquier carácter posterior.

$ productos para gatos.TXT
$ awk '/ Mo * / print $ 0' productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. Tres líneas coinciden con el patrón: dos líneas contienen la palabra 'Ratón'y una línea contiene la palabra'Monitor'.

Ejemplo 5: definir un patrón de expresiones regulares usando el símbolo '$'

El siguiente comando 'awk' buscará e imprimirá líneas en el archivo que terminen con el número 5.

$ productos para gatos.TXT
$ awk '/ 5 $ / print $ 0' productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores.  Solo hay una línea en el archivo que termina con el número 5.

Ejemplo 6: Defina un patrón de expresiones regulares usando '^' y '|' simbolos

La '^El símbolo 'indica el comienzo de una línea, y el símbolo'|'símbolo indica una declaración OR lógica. El siguiente comando 'awk' buscará e imprimirá líneas que comiencen con el carácter 'pag'y contener cualquiera'Escáner' o 'Ratón'.

$ productos para gatos.TXT
$ awk '/ ^ p.* (Escáner | Ratón) / 'productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. El resultado muestra que dos líneas contienen la palabra 'Ratón'y una línea contiene la palabra'Escáner'. Las tres líneas comienzan con el carácter 'pag'.

Ejemplo 7: definir un patrón de expresiones regulares usando el símbolo '+'

La '+'operador se utiliza para encontrar al menos una coincidencia. El siguiente comando 'awk' buscará e imprimirá líneas que contengan el carácter 'norte' al menos una vez.

$ productos para gatos.TXT
$ awk '/ n + / print' productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. Aquí, el personaje 'norte'contiene aparece al menos una vez en las líneas que contienen las palabras Monitor, impresora y escáner.

Ejemplo 8: definir un patrón de expresiones regulares usando la función gsub ()

El siguiente comando 'awk' buscará globalmente la palabra 'Impresora'y reemplácelo con la palabra'Monitor' utilizando la función gsub ().

$ productos para gatos.TXT
$ awk 'gsub (/ Printer /, "Monitor") print $ 0' productos.TXT

La siguiente salida se producirá después de ejecutar los comandos anteriores. La cuarta línea del archivo contiene la palabra 'Impresora'dos veces, y en la salida,'Impresora'ha sido reemplazado por la palabra'Monitor'.

Conclusión

Se pueden usar muchos símbolos y funciones para definir patrones de expresiones regulares para diferentes tareas de búsqueda y reemplazo. Algunos símbolos que se usan comúnmente en los patrones de expresiones regulares se aplican en este tutorial con el comando 'awk'.

Tutorial de OpenTTD
OpenTTD es uno de los juegos de simulación empresarial más populares que existen. En este juego, necesitas crear un maravilloso negocio de transporte....
SuperTuxKart para Linux
SuperTuxKart es un gran título diseñado para ofrecerte la experiencia Mario Kart de forma gratuita en tu sistema Linux. Es bastante desafiante y diver...
Tutorial de Battle for Wesnoth
The Battle for Wesnoth es uno de los juegos de estrategia de código abierto más populares que puedes jugar en este momento. Este juego no solo ha esta...