Comment analyser un fichier yaml en bash?

Comment analyser un fichier yaml en bash?
Il y a des occasions où vous devez analyser le fichier comme Yaml ou tout autre fichier, à partir des scripts bash. Bash est un interprète pour la langue de commande. Sur la plupart des systèmes GNU / Linux, il est l'interprète de commande par défaut et est largement accessible sur une variété de systèmes d'exploitation. «Bourne-Again Shell» est l'abréviation du nom. Une instruction interactive ou non interactive peut être exécutée à l'aide du shell macro processeur. Le processus de lecture des fichiers YAML dans Bash sera couvert dans cet article. Une langue pour sérialiser les données est YAML. Yaml Ain't Bualip Language est l'acronyme récursif du nom lui-même. Il a été créé avec l'intention d'être convivial, simple à lire et à écrire, et capable de représenter des paramètres et des structures de données, ainsi que de bien l'intégration aux langages de programmation actuels.

Comment obtenir la bibliothèque Yaml dans la langue bash dans Ubuntu 20.04?

Ici, nous avons donné un exemple d'analyse du fichier YAML en utilisant la langue de script bash avec l'Ubuntu 20.04 Terminal. Consultez l'exemple de l'analyse d'un fichier yaml dans le langage de programmation bash ci-dessous.

Exemple n ° 1: Programme d'analyse du fichier YAML dans le script bash dans Ubuntu 20.04

En utilisant SED et AWK, l'analyseur de bash uniquement suivant peut analyser des fichiers YAML simples. Ce programme lira chaque touche et paire de valeurs sous forme de variable bash, attribue la valeur à cette variable, puis lit la paire de touches et de valeur suivantes. La personne.Le fichier yaml indiqué ci-dessous sera analysé dans le script bash.

Comme nous sommes dans le dossier du script bash, commencez par la section d'en-tête bash. Nous avons donné un chemin '#!/ bin / sh '. Certaines de ces approches nécessitent un shebang dans l'en-tête du script, qui dans ce cas signifie que le script est un script de shell ou un script bash. Alors, soyez prudent en plaçant cette commande au début du fichier. Le script sera exécuté en utilisant la commande et l'interprète bash. Même s'il fonctionne sans eux, l'écriture de l'en-tête Shebang est requise. Après cela, nous avons créé la fonction et l'avons nommée parse_yaml (). À l'intérieur de cette fonction, nous avons un mot-clé local qui indique la variable ici. Le seul bloc de code qui peut afficher une variable locale est celui où il a été déclaré.

La «portée» locale est présente. Une variable locale dans une fonction n'est significative que dans les limites du bloc fonction. Nous avons défini la première variable comme un préfixe et l'avons attribué les 2 $ qui sont parfois appelés argument positionnel. Ici, 2 $ est indiqué comme le deuxième paramètre de ligne de commande. Ensuite, nous avons deux autres variables locales «S» et «FS». Le «S» est utilisé pour lire l'entrée standard de la fête et du «FS» est utilisée comme séparateur entre les champs d'entrée tout en utilisant l'expression régulière.

Après cela, nous devons déployer l'opération SED et AWK dans la fonction PARSE_YAML. L'éditeur de ligne SED n'est pas interactif. Il accepte la saisie du texte de STDIN ou d'un fichier, traite les lignes spécifiques du texte une à la fois et envoie les résultats à STDOUT ou à un fichier. Le SED utilise des options NE et E. L'option -ne affiche la première ligne du fichier d'entrée. L'option -E demande au programme SED d'exécuter l'argument de ligne de commande suivante comme SED. Ensuite, venez l'opération AWK qui est «dirigée par les données»; Vous décrivez les processus à effectuer lorsque les données que vous recherchez sont trouvées. En plus d'ouvrir et de fermer automatiquement les enregistrements, de lire les enregistrements, de segmenter les enregistrements dans les champs et de compter les enregistrements ne sont que quelques-unes des choses que AWK peut faire pour vous. La fonction PARSE_YAML est alors fermée. En fin de compte, nous avons la commande «Eval» qui vient avec Linux ou Unix. Pour exécuter les entrées en tant que commande shell sur un système Linux ou Unix, la commande «EVAL» doit être utilisée. La commande «EVAL» prend la fonction Parse_yaml avec la personne.fichier yaml.

Les données spécifiques du fichier YAML sont imprimées à l'aide de la commande echo. Nous avons exécuté le script bash ci-dessus pour analyser le fichier yaml en utilisant la commande bash dans Ubuntu 20.04. La sortie générée dans le shell a les données du fichier YAML au format bash.

Exemple n ° 2: Programme d'analyse du fichier YAML complexe dans le script bash dans Ubuntu 20.04

Comme l'exemple susmentionné a brièvement démontré l'analyse du fichier YAML. Maintenant, nous avons pris une structure de fichiers YAML complexe pour montrer comment Bash analyse ce fichier YAML. De plus, nous essayons d'analyser les données du fichier YAML qui ne sont pas présentes dans le fichier YAML. Ce qui suit est l'étudiant.Contenu du fichier YAML:


Ce script de bash particulier est le même que le programme bash ci-dessus. Nous venons d'utiliser les différents fichiers ici. L'étudiant.Le fichier YAML va analyser par le bash. Dans l'exemple précédent, nous avons imprimé le champ un par un en invoquant la commande echo. Mais ici, nous venons d'imprimer le nom de la fonction parse_yaml avec l'étudiant.Fichier yaml. Sur le snap ultérieur d'Ubuntu 20.04, vous pouvez afficher les résultats.

Ici, nous avons inclus une autre fonction comme Verify_param () dans notre script bash pour vérifier les entrées existantes. La fonction vérifiera chaque entrée dans l'étudiant de fichier.yaml.

Comme nous avons fourni l'entrée $ Student_Result qui n'existe pas chez l'étudiant.fichier yaml. Lors de l'interprétation du script bash, le message d'exception est montré que nous avons fourni à la commande echo dans la fonction Verify_param (). Vous pouvez maintenant utiliser la fonction simple pour gérer tous vos paramètres. Vous n'avez pas besoin d'initialiser chacun séparément et de vérifier les valeurs nulles.

Conclusion

L'article vise à analyser le fichier yaml dans une langue de script bash que nous vous avons montrée en donnant deux exemples. Le premier exemple de script bash consiste à afficher les données sélectionnées du fichier YAML en appelant la commande echo sur l'entrée spécifique. L'exemple suivant analyse l'ensemble du fichier yaml en donnant simplement une commande. De plus, le deuxième exemple ajoute une autre fonction de vérification des valeurs des paramètres. Cela est particulièrement utile si vous souhaitez exécuter une opération qui nécessite un certain résultat d'un fichier YAML.