Usar regex en declaraciones de casos bash

Usar regex en declaraciones de casos bash
Se dice que la expresión regular o regex son cadenas alfanuméricas utilizadas para la creación de consultas de búsqueda. Las expresiones regulares se utilizan como búsqueda y sustituto al validar algunas condiciones. Regex se puede usar en programación bash o en cualquier otro lenguaje de programación. La mayoría de las veces, Regex se puede usar dentro de las declaraciones GREP y no en las declaraciones del caso. Esta guía verá cómo funcionan las expresiones regulares con la declaración del caso mientras usa el Ubuntu 20.04 Sistema Linux. Debe tener que iniciar sesión desde el sistema antes de ir más allá.

Ejemplo 01:

Muchas veces, a los usuarios les resultó difícil usar regex (expresiones regulares) en las declaraciones de "caso" porque el "regex" nunca funciona dentro de las declaraciones de casos. Como alternativa, "GREP" siempre se ha utilizado en lugar de una declaración de caso para el uso de regex en Bash. Veremos un ejemplo simple para ver cómo el trabajo de GreP y el caso mientras usan expresiones regulares. Por lo tanto, abra la consola terminal antes de moverse aún más a través del atajo "Ctrl+Alt+T". Después de abrir el terminal, debe crear un nuevo archivo bash con la consulta táctil.

Prueba de $ touch.mierda

Después de la creación del archivo bash, ábralo para agregar el código bash. Para eso, pruebe la consulta indicada a continuación.

$ nano prueba.mierda

El archivo bash se ha abierto en el "editor GNU". Agregue el código BASH que se muestra a continuación, ya que está dentro del archivo Bash. Este código discutirá el uso de GREP, mientras que la expresión regular se ha utilizado dentro de él. Agregue primero la extensión de Bash. Hemos declarado una variable "S" que tiene espacio y cadenas como su valor. La primera instrucción ECHO muestra el mensaje de que el RegEx se ha utilizado con "GREP" en este código de ejemplo. En la siguiente línea, hemos utilizado la instrucción ECHO para mostrar la variable "S". Mientras que el GREP, el comando se ha utilizado para buscar en el texto "Word1" desde la variable "S", que coincide con la expresión regular dada en la imagen. Guarde su código y déjelo a través de "Ctrl+S" y "Ctrl+X" en una fila.

Es hora de ejecutar nuestro archivo bash para ver sus resultados. Entonces, hemos usado el comando bash para ejecutar el archivo "prueba.mierda. La salida muestra el resultado de la variable "S" junto con el mensaje "con GREP". Esto indica que el regex funciona perfectamente dentro de las declaraciones de GREP.

Prueba de $ Bast.mierda

Creemos la misma salida para las declaraciones de caso esta vez. Por lo tanto, abra su archivo bash nuevamente en el editor utilizando la consulta "nano". Agregue la extensión de Bash y defina una variable "S" con algún valor. Hemos usado la declaración "Echo" para elaborar el uso de la declaración de caso ahora. Hemos comenzado la declaración de caso mientras buscamos la variable "S" dentro de la expresión regular definida en el código. Cuando encuentra la cadena coincidente, debe imprimir la variable "S" en el terminal. Entonces, la declaración de caso ha terminado con la palabra clave "ESAC".

Mientras ejecuta el archivo bash dentro del terminal, resulta que arroja una excepción diciendo "Error de sintaxis cerca de token inesperado en [expresión]". Esto simplemente está demostrando que la expresión regular no funciona con la declaración del caso.

Prueba de $ bash.mierda

Ejemplo 02:

Vamos a echar un vistazo a otro ejemplo de expresiones bash regulares. Esta vez tomaremos una expresión regular un poco diferente para explorar el funcionamiento de Regex. Por otro lado, veremos a Regex trabajando dentro de la declaración "IF" en lugar de la "Declaración de casos". Entonces, abra la "prueba.archivo sh "de nuevo.

$ nano prueba.mierda

Como se abre el archivo ahora, hemos agregado la extensión Bash y utilizando la instrucción "IF" para iniciar la condición. Dentro de la declaración "if", no nos permite agregar ninguna expresión regular. Es por eso que hemos usado la expresión "= ~" para instanciar la regex en el código. Dentro de esta condición, hemos agregado el Regex usando "$" como una expresión regular válida. Cuando el personaje agregado coincide con la condición de expresión regular dentro de la declaración "IF", debe guardar esa expresión en una variable "n" e imprimir "válido". Si la condición no satisface, debe imprimir "inválido" en el terminal y cerrar la declaración "si". Simplemente guarde el archivo por el atajo "Ctrl+S" y deje el editor por "Ctrl+X".

Ahora, volviendo al terminal, hemos probado la declaración de ejecución de BASH para ejecutar el archivo "prueba.sh "tres veces analizando algunos personajes y símbolos. Hemos agregado personajes @, #y f esta vez. Todos los personajes han sido declarados "inválidos" según el código de bash. Esto se debe a que hemos usado la expresión regular para tomar "$" solo como válido.

Prueba de $ bash.mierda

Tomemos "$" esta vez dentro de la consulta de ejecución para probar cómo funciona. Resulta que el "$" es una expresión válida, e imprime la salida "válida" dentro del shell de la consola.

Prueba de $ bash.mierda

Ejemplo 03:

Tengamos un ejemplo diferente y simple de usar la expresión regular dentro de la declaración del caso. De nuevo, abramos la fiesta "Prueba.Archivo SH "dentro del editor del Ubuntu 20.04 sistema.

$ nano prueba.mierda

Como prueba.El archivo SH Bash se ha lanzado dentro del GNU Nano 4.8 Editor de la terminal, agregue la extensión Bash al comienzo de un archivo. Después de eso, hemos utilizado la instrucción "Leer" con el indicador "-P" para tomar la entrada como nombre del servidor del usuario. Este nombre del servidor como entrada se guardaría en la variable "servidor". Este servidor debe ser una URL del servidor de dominio. Ahora utilizaremos la declaración de caso aquí para probar la expresión regular. Por lo tanto, hemos comenzado la instrucción de caso con el servidor variable para verificar si el dominio del servidor de entrada agregado coincide con las otras declaraciones mencionadas en la declaración de caso o no. Cuando el valor de "servidor" variable coincidía con el ws*.@anfitrión.com, usará la instrucción ECHO para mostrar que este dominio es "servidor web". Si coincide con DB*.@anfitrión.com, utilizará la instrucción "echo" para mostrar que el servidor es un "servidor DB". Si el dominio es bk*.@anfitrión.com, muestra el "servidor de copia de seguridad". De lo contrario, mostrará que el servidor es desconocido. El asterisco representa el regex. Después de esto, la Declaración del caso será cerrada por la palabra clave "ESAC" en el script. Guarde este código y salga utilizando los mismos atajos "Ctrl+S" y "Ctrl+X".

Ahora volvamos al terminal, probemos este código de bash ejecutando el comando bash con el nombre de una prueba.Archivo SH. Después de la ejecución, le pide al usuario que agregue el nombre de usuario. Hemos agregado un nombre de servidor "WS" válido con 1234 como regex y presionado Enter. Muestra que la sintaxis del servidor coincide con el "servidor web".

Hemos hecho otra ejecución, y esta vez hemos cambiado la sintaxis de un servidor. Como el punto se ha perdido en la URL del dominio, muestra que el servidor es desconocido.

Cuando hemos agregado un dominio similar y correcto, muestra el nombre de un servidor.

Conclusión:

Dentro de este tutorial, hemos discutido cómo utilizar una declaración de caso en Bash para usar expresiones regulares. Esperamos que este artículo lo haya ayudado a su mejor momento para eliminar las dudas y complicaciones.