Rápido: si grita «expresiones regulares» en una multitud de usuarios de Linux, ¿qué sucede?
Respuesta: Todos le dirán la forma correcta de usarlos, y cada respuesta será diferente.
Las expresiones regulares, a menudo llamadas regex, son secuencias de caracteres que definen un patrón de búsqueda en el texto. Eso los hace sonar como un pony de un solo truco, pero te sorprendería lo efectos que son estas cosas.
Las expresiones regulares se pueden utilizar para la coincidencia de socios, el procesamiento de texto, la energía de datos y mucho más.
Incluso: 5 comandos de Linux que uso para surtir mi dispositivo funcionando sin problemas
La única advertencia para usar expresiones regulares es que pueden volverse muy complejas, casi hasta el punto de ser su propio idioma. Una vez que te parezcas de Regex, los encontrarás invaluables. Hay cosas que puede hacer con expresiones regulares que no puede hacer con ausencia más, y hacen que interactuar con la estría de comandos o incluso arrear los scripts mucho más potentes.
Permítanme resaltar cinco formas diferentes en que uso expresiones regulares.
Primero, hablemos de patrones de regex.
¿Qué hace un patrón de expresión regular?
Hay cuatro conceptos básicos que debe comprender sobre las expresiones regulares:
- Personajes literales Haga coincidir los cargos exactos especificados (por ejemplo, «Hola» solo coincide con «hola»).
- Clases de personajes Los caracteres grupales adentro de un conjunto (p. Ej. (A-ZA-Z) coincide con cualquier símbolo de ‘A’ a ‘Z’).
- Coincidencia de patrones se usa para hacer coincidir los patrones en cadenas (por ejemplo, w coincide con cualquier carácter de palabra).
- Cuantificadores Especifique el número de veces que se debe coincidir un patrón (por ejemplo, * coincide con 0 o más ocurrencias, + coincide 1 o más ocurrencias).
Aquí hay una descripción militar de la sintaxis de expresión regular:
- ^ – Inicio de la prisión
- – Escapar carácter
- . – Cualquier personaje único
- (AZ) – Cualquier carta minúscula de ‘A’ a ‘Z’
- (AZ) – Cualquier carta en mayúsculas de ‘A’ a ‘Z’
- (0-9) – Cualquier dígito de ‘0’ a ‘9’
- $ – final de la prisión
Adicionalmente: era un escéptico de IA hasta que estas 5 herramientas cambiaron de opinión
Aquí hay algunos ejemplos básicos:
- conectamentado: coincide con la prisión textual «conectamentado».
- (A-Za-Z)-Coincide con cualquier carta de ‘A’ a ‘Z’.
- D {5} – coincide exactamente con 5 dígitos (por ejemplo, 01234).
- ^conectamentado $: coincide con el inicio y el final de una prisión, asegurando que sea «conectamentado» (no solo parte de otra prisión).
- (ABC) – Agrupe caracteres juntos para capturar y hacer relato más tarde.
- S+ – coincide con uno o más caracteres no espacios.
Por ejemplo, podría agenciárselas un archivo de texto (prueba indicación) para la prisión conectamentado con GREP, como así:
prueba de GREP conectamentado
Digamos que tengo hola, zdnet! en la parte superior de ese archivo. El comando aludido se imprimiría:
¡Hola, Zdnet!
Pero, ¿qué pasa si usé ^zdnet $? En el ejemplo aludido, ZDNet es parte de una prisión más larga, por lo que no produciría resultados. Si, por otro costado, había una estría que contenía solo zdnet, podría encontrarla con el comando:
grep ^zdnet $ prueba
El personaje $ es el final del carácter de prisión, por lo que la coincidencia de patrón termina posteriormente de conectamentado.
Ahora, veamos cinco formas diferentes en que uso expresiones regulares en Linux.
1. Trámite de archivos (con la ayuda de GREP)
Ya he demostrado cómo se pueden usar expresiones regulares con el comando GREP. Pero es importante asimilar que puede sobrealimentar la distribución de archivos en Linux desde la estría de comando empleando el comando GREP. Con Regex y Grep, puede agenciárselas patrones en archivos de texto con patrones simples o muy complejos.
Incluso: los primeros 5 comandos de Linux que cada nuevo adjudicatario debe ilustrarse
Incluso puede usar RegEx para hacer coincidir el espacio en blanco y la puntuación. Esto puede ser útil para eliminar espacios adicionales posteriormente de la puntuación. Aquí hay un ejemplo:
Grep -e ‘(^a-Za-z0-9 . ? !)’ Input.txt
Desglosemos esto:
- GREP: el comando para agenciárselas e imprimir líneas que coincidan con un patrón.
- -E – Habilita la sintaxis de expresión regular extendida.
- ‘ – Primero de dos citas individuales que rodean la expresión regular.
- – Un personaje espacial (que coincide con un solo espacio).
- (^A-ZA-Z0-9 . ? !)-Esto coincide con cualquier carácter único que no sea una símbolo minúscula (AZ), símbolo mayúscula (AZ), dígito (0-9), período (.), signo de interrogación () y marca de interjección (!). El ^ niega el comportamiento frecuente de ().
- input.txt: el archivo para agenciárselas en
- ‘ – Segundo de dos citas individuales que rodean la expresión regular.
Digamos que tiene las siguientes líneas en ese archivo:
¡Hola, Zdnet! ¿Cómo ha sido tu día?
Zdnet
Mi nombre es Jack. ¿Qué es el tuyo?
Solo en la primera estría tengo un espacio ayer de un personaje que no es una símbolo minúscula (AZ), símbolo mayúscula (AZ), dígito (0-9), período (.), Marca de interrogación (?) Y marca de interjección (!), Por lo que la salida incluiría solo esa estría.
2. Tiraje de texto (con Vim)
VIM es un poderoso editor de texto e incluye soporte para patrones regex. Desafortunadamente, mi editor de selección (Nano) no admite a Regex, por lo que si necesito la función, tengo que ponerme serio con VIM.
Digamos que tengo un archivo que contiene el ulterior texto:
El envejecido minino corrió rápidamente.
Pero vi a una anciana caminando por el camino.
¡Los nuevos álbumes son en realidad geniales!
Incluso: 5 editores de texto de Linux Top que no son VI o emacs (y por qué son mis favoritos)
¿Qué pasa si quieres reemplazar manualmente «envejecido» con «nuevo»? Eso es simple si el archivo tiene solo tres líneas de liberal, pero si es mucho más prócer, podría usar el ulterior comando regex (adentro de VIM) para hacer ese cambio automáticamente:
:%s/
/nuevo/g
Aquí está el desglose de ese comando:
– Coincide con la palabra completa «vieja», no solo parte de otra palabra. El coincide con el final de un frontera de palabras - Nuevo – El texto de reemplazo.
- G – Bandera universal, que aplica la sustitución a todos los ocurrencias en toda la estría.
3. Tiraje de texto (con Find y Sed)
Otro método de tiraje de texto es con el comando SED. Esta es otra gran opción para agenciárselas y reemplazar en archivos de texto. Usemos el mismo ejemplo que el aludido y reemplacemos los viejos con nuevo usando el ulterior comando:
encontrar . -name «*.txt» -exec sed -e ‘s/Old/New/G’ {} ;
Utilizamos la opción -exec para ejecutar un comando en cada archivo que se encuentra por el comando Despabilarse. Puede hacer lo mismo con múltiples archivos .txt *, lo que ayuda a ilustrar cuán poderosas pueden ser expresiones regulares.
4. Configuración de red con el comando IP
Digamos que tengo una máquina con múltiples tarjetas de red adjuntas (lo que indicaría que es un servidor conectado a mi LAN). Puede sobrevenir conexiones de red internas y externas en la máquina, y solo quiero ver las conexiones con direcciones IP que comienzan con 192.168.1. Para hacer eso, uso dos comandos y una expresión regular. Los dos comandos son IP y GREP. El comando se ve así:
ADR IP | Grep -eo ‘192 .168 .1 . (0-9) {1,3}’
5. Visualización de registros
A menudo sigo registros con el comando de pan dulce y puedo usar expresiones regulares para ver solo lo que necesito hacer. Por ejemplo, es posible que desee ver solo errores o advertencias que aparecen en/var/log/syslog. Simplemente podría colocar ese archivo (que mantendrá una modernización en tiempo auténtico de las últimas entradas escritas en el archivo syslog) como así:
pan dulce -f/var/log/syslog
Incluso: los primeros 5 comandos de Linux que cada nuevo adjudicatario debe ilustrarse
Entonces tendría que peinar a través de la salida, buscando un error o advertencia. La mejor opción sería usar expresiones regulares para que solo se muestren entradas con error o advertencia, que usarían pan dulce y grep como este:
Trasero -f/var/log/syslog | GREP -E ‘Error | ADVERTENCIA’
Y así, mis amigos, es cómo normalmente uso expresiones regulares. Solo he arañado la superficie sobre cómo se usan. Si eres nuevo en las expresiones regulares, asegúrate de comenzar a poco y construir desde allí; De lo contrario, la confusión puede valer rápidamente.
Obtenga las principales historias de la mañana en su bandeja de entrada cada día con nuestro Boletín de Tech Today.


