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 yq

Ou 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: secret

Para ler o host do banco de dados, você pode usar yq da seguinte forma:

yq e '.database.host' config.yaml

Saída de Exemplo:

localhost

Atualizando 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.yaml

Verifique a mudança com:

yq e '.user.name' config.yaml

Saída de Exemplo:

newadmin

Adicionando 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.yaml

Checar 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.yaml

Esta 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.