Bash:
Trabalhando com YAML
Como fazer:
Trabalhar diretamente com YAML no Bash requer um pouco de engenhosidade, já que o Bash não tem suporte embutido para a análise de YAML. No entanto, você pode usar ferramentas externas como yq (um processador de YAML de linha de comando leve e portátil) para interagir eficientemente com arquivos YAML. Vamos passar por algumas operações comuns:
Instalando yq:
Antes de mergulhar nos exemplos, certifique-se de ter yq instalado. Você geralmente pode instalá-lo a partir do seu gerenciador de pacotes, por exemplo, no Ubuntu:
sudo apt-get install yqOu você pode baixá-lo diretamente do seu repositório no GitHub.
Lendo um valor:
Considere que você tenha um arquivo chamado config.yaml com o seguinte conteúdo:
database:
host: localhost
port: 5432
user:
name: admin
password: secretPara ler o host do banco de dados, você pode usar yq da seguinte forma:
yq e '.database.host' config.yamlSaída de Exemplo:
localhostAtualizando um valor:
Para atualizar o nome do usuário em config.yaml, use o comando yq eval com a opção -i (in-place):
yq e '.user.name = "newadmin"' -i config.yamlVerifique a mudança com:
yq e '.user.name' config.yamlSaída de Exemplo:
newadminAdicionando um novo elemento:
Para adicionar um novo elemento na seção do banco de dados, como um novo campo timeout:
yq e '.database.timeout = 30' -i config.yamlChecar o conteúdo do arquivo confirmará a adição.
Deletando um elemento:
Para remover a senha sob usuário:
yq e 'del(.user.password)' -i config.yamlEsta operação removerá o campo da senha da configuração.
Lembre-se, yq é uma ferramenta poderosa e possui muito mais capacidades, incluindo converter YAML para JSON, mesclar arquivos e até manipulações mais complexas. Consulte a documentação do yq para uma exploração mais aprofundada.