Fish Shell:
Trabalhando com YAML

Como fazer:

O Fish Shell não tem suporte nativo para analisar YAML, mas você pode utilizar ferramentas de terceiros como o yq (um processador de linha de comando YAML leve e portátil) para manipular dados YAML.

Instalação do yq (se ainda não estiver instalado):

sudo apt-get install yq

Lendo um valor de um arquivo YAML: Suponha que você tenha um arquivo YAML config.yaml com o seguinte conteúdo:

database:
  host: localhost
  port: 3306

Para ler o host do banco de dados, você usaria:

set host (yq e '.database.host' config.yaml)
echo $host

Saída de exemplo:

localhost

Atualizando um valor em um arquivo YAML: Para atualizar o port para 5432, use:

yq e '.database.port = 5432' -i config.yaml

Verifique a atualização:

yq e '.database.port' config.yaml

Saída de exemplo:

5432

Escrevendo um novo arquivo YAML: Para criar um novo new_config.yaml com conteúdo predefinido:

echo "webserver:
  host: '127.0.0.1'
  port: 8080" | yq e -P - > new_config.yaml

Isso usa o yq para processar e imprimir de forma bonita (-P flag) uma string em um novo arquivo YAML.

Analisando estruturas complexas: Se você tem um arquivo YAML mais complexo e precisa buscar arrays ou objetos aninhados, você pode:

echo "servers:
  - name: server1
    ip: 192.168.1.101
  - name: server2
    ip: 192.168.1.102" > servers.yaml

yq e '.servers[].name' servers.yaml

Saída de exemplo:

server1
server2

Usando o yq, o Fish Shell torna simples navegar por documentos YAML e manipulá-los para várias tarefas de automação e configuração.