¿Cómo analizo un archivo Yaml en Bash??

¿Cómo analizo un archivo Yaml en Bash??
Hay ocasiones en que necesita analizar el archivo como Yaml o cualquier otro archivo, desde los scripts bash. Bash es un intérprete para el lenguaje de comando. En la mayoría de los sistemas GNU/Linux, se produce como el intérprete de comando predeterminado y es ampliamente accesible en una variedad de sistemas operativos. "Bourne-Again Shell" es la abreviatura del nombre. Se puede ejecutar una instrucción interactiva o no interactiva utilizando el shell del procesador macro. El proceso de leer archivos YAML en Bash se cubrirá en esta publicación. Un idioma para serializar datos es Yaml. Yaml Ain't Markup Language es el acrónimo recursivo del nombre en sí. Fue creado con la intención de ser fácil de usar, fácil de leer y escribir, y capaz de representar parámetros y estructuras de datos, así como integrarse bien con los lenguajes de programación actuales.

Cómo obtener la biblioteca Yaml en el idioma Bash en Ubuntu 20.04?

Aquí, hemos dado un ejemplo de analización del archivo YAML utilizando el lenguaje de secuencias de comandos de bash con el Ubuntu 20.04 terminal. Consulte el ejemplo de analizar un archivo YAML en el lenguaje de programación BASH a continuación.

Ejemplo # 1: Programa de analizar el archivo YAML en el script bash en Ubuntu 20.04

Usando SED y AWK, el siguiente analizador solo bash puede analizar archivos YAML sencillos. Este programa leerá cada clave y par de valores como una variable bash, asigna el valor a esa variable y luego lee la siguiente clave y el par de valores. La persona.El archivo YAML que se muestra a continuación se analizará en el script bash.

Como estamos en el archivo del script bash, comience con la sección del encabezado Bash. Hemos dado un camino '#!/bin/sh '. Algunos de estos enfoques requieren un shebang en el encabezado del script, lo que en este caso significa que el script es un script o script bash. Entonces, tenga cuidado al colocar este comando al comienzo del archivo. El script se ejecutará usando el comando y el intérprete de bash. Incluso si funciona sin ellos, se requiere escribir el encabezado del hendicero. Después de eso, creamos la función y la llamamos parse_yaml (). Dentro de esa función, tenemos una palabra clave local que indica la variable aquí. El único bloque de código que puede ver una variable local es la que se declaró.

El "alcance" local está presente. Una variable local en una función solo es significativa dentro de los límites del bloque de funciones. Hemos definido la primera variable como un prefijo y lo asignamos los $ 2 que a veces se conoce como un argumento posicional. Aquí, $ 2 se indica como el segundo parámetro de línea de comandos. Luego, tenemos otras dos variables locales 's' y 'fs'. El 'S' se usa para leer la entrada estándar de la fiesta y 'FS' se utiliza como el separador entre los campos de entrada mientras se usa la expresión regular.

Después de eso, tenemos que implementar la operación SED y AWK en la función parse_yaml. El editor de línea SED no es interactivo. Acepta la entrada de texto de Stdin o de un archivo, procesa líneas específicas del texto uno a la vez y envía los resultados a Stdout o un archivo. El SED usa opciones NE y E. La opción -ne muestra la primera línea desde el archivo de entrada. La opción -e instruye al programa SED que ejecute el siguiente argumento de línea de comandos como SED. Luego, viene la operación AWK que está "basada en datos"; Usted describe los procesos que se llevarán a cabo cuando se encuentran los datos que está buscando. Además de abrir y cerrar los registros automáticamente, leer registros, segmentar registros en campos y contar registros son solo algunas de las cosas que AWK puede hacer por usted. La función parse_yaml se cierra. Al final, tenemos el comando "eval" que viene con Linux o Unix. Para ejecutar las entradas como un comando shell en un sistema Linux o UNIX, se debe usar el comando "eval". El comando "eval" toma la función parse_yaml con la persona.archivo yaml.

Los datos específicos del archivo YAML se imprimen utilizando el comando ECHO. Hemos ejecutado el script bash anterior para analizar el archivo YAML utilizando el comando bash en Ubuntu 20.04. La salida generada en el shell está teniendo los datos del archivo YAML en el formato BASH.

Ejemplo # 2: Programa de analizar el complejo archivo YAML en el script bash en Ubuntu 20.04

Como el ejemplo mencionado anteriormente demostró brevemente el análisis del archivo YAML. Ahora, hemos tomado una compleja estructura de archivos YAML para mostrar cómo analiza este archivo YAML. Además, estamos tratando de analizar los datos del archivo YAML que no están presentes en el archivo YAML. El siguiente es el estudiante.Contenido del archivo YAML:


Este script bash en particular es el mismo que el programa bash anterior. Acabamos de usar los diferentes archivos aquí. El estudiante.El archivo yaml va a analizar por la fiesta. En el ejemplo anterior, hemos imprimido el campo uno por uno invocando el comando Echo. Pero aquí, acabamos de imprimir el nombre de la función parse_yaml con el estudiante.Archivo yaml. En el Snaps posterior de Ubuntu 20.04, puede ver los resultados.

Aquí, hemos incluido otra función como verify_param () en nuestro script bash para verificar las entradas existentes. La función verificará cada entrada en el estudiante de archivo.yaml.

Como hemos proporcionado la entrada $ student_result que no existe en el estudiante.archivo yaml. Tras la interpretación del script bash, se muestra el mensaje de excepción que hemos proporcionado al comando echo en la función verify_param (). Ahora puede usar la función directa para administrar todos sus parámetros. No necesita inicializar cada uno por separado y verificar los valores nulos.

Conclusión

El artículo tiene como objetivo analizar el archivo YAML en un lenguaje de secuencias de comandos que le hemos demostrado dando dos ejemplos. El primer ejemplo de un script bash es mostrar los datos seleccionados del archivo YAML llamando al comando echo en la entrada específica. El siguiente ejemplo analiza todo el archivo YAML simplemente dando un comando. Además, el segundo ejemplo agrega una función más de verificar los valores de los parámetros. Eso es especialmente útil si desea ejecutar una operación que requiere un cierto resultado de un archivo YAML.