Como faço para analisar um arquivo yaml em bash?

Como faço para analisar um arquivo yaml em bash?
Há ocasiões em que você precisa analisar o arquivo como a YAML ou qualquer outro arquivo, de dentro dos scripts do Bash. Bash é um intérprete para a linguagem de comando. Na maioria dos sistemas GNU/Linux, ele vem como intérprete de comando padrão e é amplamente acessível em uma variedade de sistemas operacionais. "Bourne-de novo shell" é o nome da abreviação. Uma instrução interativa ou não interativa pode ser executada usando o shell do processador macro. O processo de leitura de arquivos YAML em Bash será abordado neste post. Um idioma para serializar dados é yaml. Yaml não é a linguagem de marcação é a sigla recursiva para o próprio nome. Foi criado com a intenção de ser fácil de usar, simples de ler e escrever e capaz de representar parâmetros e estruturas de dados, além de integrar bem as linguagens de programação atuais.

Como obter a biblioteca Yaml na linguagem Bash no Ubuntu 20.04?

Aqui, damos um exemplo de analisar o arquivo YAML usando a linguagem de script de bash com o Ubuntu 20.04 Terminal. Confira o exemplo de analisar um arquivo YAML na linguagem de programação Bash abaixo.

Exemplo # 1: Programa de analisar o arquivo YAML no script Bash no Ubuntu 20.04

Usando sed e awk, o seguinte analisador somente Bash pode analisar arquivos YAML simples. Este programa lerá cada par de teclas e valores como uma variável Bash, atribui o valor a essa variável e depois lê a próxima chave e par de valores. A pessoa.O arquivo yaml mostrado abaixo será analisado no script bash.

Como estamos no arquivo do script Bash, comece com a seção de cabeçalho da festa. Nós demos um caminho '#!/bin/sh '. Algumas dessas abordagens exigem um shebang no cabeçalho do script, que neste caso significa que o script é um script de shell ou script bash. Portanto, tenha cuidado ao colocar este comando no início do arquivo. O script será executado usando o comando e o intérprete de bash. Mesmo que funcione sem eles, escrever o cabeçalho da shebang é necessário. Depois disso, criamos a função e a nomeamos parse_yaml (). Dentro dessa função, temos uma palavra -chave local que indica a variável aqui. O único bloco de código que pode ver uma variável local é aquele onde foi declarado.

“Escopo local” está presente. Uma variável local em uma função é significativa apenas dentro dos limites do bloco de funções. Definimos a primeira variável como um prefixo e atribuímos os US $ 2 que às vezes é chamado de argumento posicional. Aqui, US $ 2 é indicado como o segundo parâmetro da linha de comando. Então, temos duas outras variáveis ​​locais 's' e 'fs'. O 'S' é usado para ler a entrada padrão do Bash e 'FS' é utilizada como o separador entre os campos de entrada enquanto usa expressão regular.

Depois disso, temos que implantar a operação sed e awk na função parse_yaml. O editor de linha sed não é interativo. Ele aceita a entrada de texto de stdin ou um arquivo, processa linhas específicas do texto uma de cada vez e envia os resultados para o stdout ou um arquivo. O SED usa opções NE e E. A opção -ne exibe a primeira linha do arquivo de entrada. A opção -e instrui o programa SED a executar o seguinte argumento da linha de comando como sed. Então, venha a operação AWK que é "orientada a dados"; Você descreve os processos a serem realizados quando os dados que você está procurando é encontrado. Além de abrir e fechar automaticamente registros, ler registros, segmentar registros em campos e contar registros são apenas algumas das coisas que o Awk pode fazer por você. A função parse_yaml é então fechada. No final, temos o comando "avaliar" que vem com Linux ou Unix. Para executar as entradas como um comando shell em um sistema Linux ou Unix, o comando "avaliar" deve ser usado. O comando "avaliar" leva a função parse_yaml com a pessoa.arquivo yaml.

Os dados específicos do arquivo YAML são impressos usando o comando echo. Executamos o script Bash acima para analisar o arquivo YAML usando o comando Bash no Ubuntu 20.04. A saída gerada no shell está tendo os dados do arquivo YAML no formato Bash.

Exemplo # 2: Programa de análise do arquivo YAML complexo no script Bash no Ubuntu 20.04

Como o exemplo mencionado demonstrou brevemente a análise do arquivo YAML. Agora, tomamos uma estrutura complexa de arquivo YAML para mostrar como o Bash analisa esse arquivo YAML. Além disso, estamos tentando analisar os dados do arquivo YAML que não estão presentes no arquivo YAML. O seguinte é o aluno.Conteúdo do arquivo YAML:


Este script bash em particular é o mesmo que o programa Bash acima. Acabamos de usar os diferentes arquivos aqui. O estudante.O arquivo yaml vai analisar a festa. No exemplo anterior, imprimimos o campo um por um invocando o comando Echo. Mas aqui, acabamos de imprimir o nome da função parse_yaml com o aluno.Arquivo yaml. No snap subsequente do Ubuntu 20.04, você pode ver os resultados.

Aqui, incluímos outra função como verify_param () em nosso script bash para verificar as entradas existentes. A função verificará cada entrada no aluno do arquivo.Yaml.

Como fornecemos a entrada $ student_result que não existe no aluno.arquivo yaml. Após a interpretação do script Bash, a mensagem de exceção é mostrada que fornecemos ao comando Echo na função verify_param (). Agora você pode usar a função direta para gerenciar todos os seus parâmetros. Você não precisa inicializar cada um separadamente e verificar valores nulos.

Conclusão

O artigo tem como objetivo analisar o arquivo YAML em uma linguagem de script bash que mostramos, dando dois exemplos. O primeiro exemplo de um script bash é mostrar os dados selecionados do arquivo YAML chamando o comando Echo na entrada específica. O próximo exemplo analisa todo o arquivo YAML, apenas dando um comando. Além disso, o segundo exemplo adiciona mais uma função de verificar os valores dos parâmetros. Isso é especialmente útil se você deseja executar uma operação que requer um certo resultado de um arquivo YAML.