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 yqLendo um valor de um arquivo YAML:
Suponha que você tenha um arquivo YAML config.yaml com o seguinte conteúdo:
database:
host: localhost
port: 3306Para ler o host do banco de dados, você usaria:
set host (yq e '.database.host' config.yaml)
echo $hostSaída de exemplo:
localhostAtualizando um valor em um arquivo YAML:
Para atualizar o port para 5432, use:
yq e '.database.port = 5432' -i config.yamlVerifique a atualização:
yq e '.database.port' config.yamlSaída de exemplo:
5432Escrevendo 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.yamlIsso 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.yamlSaída de exemplo:
server1
server2Usando o yq, o Fish Shell torna simples navegar por documentos YAML e manipulá-los para várias tarefas de automação e configuração.