Exploração de Dados com Dasel v3
<when_to_use>
Ative esta skill quando:
- Explorar arquivos de dados estruturados desconhecidos (configurações, respostas de API, conjuntos de dados)
- Descobrir o esquema ou a forma de um documento antes de modificá-lo
- Investigar estruturas de configuração aninhadas (manifestos Kubernetes, pipelines de CI, arquivos de pacotes)
- Amostrar grandes arrays ou objetos profundamente aninhados para entender o conteúdo
- Identificar tipos de dados antes de transformação ou extração
</when_to_use>
Formatos Suportados
Dasel detecta automaticamente o formato a partir da extensão do arquivo. Substitua com -i <formato> ao ler do stdin ou quando a extensão for ambígua.
Identificadores de formato: json, yaml, toml, xml, csv, hcl, ini
Fluxo de Trabalho Universal de Exploração
Siga esta sequência ao encontrar um arquivo de dados estruturados desconhecido. Cada etapa reduz o escopo.
Etapa 1 — Detecção de Formato
Dasel infere o formato a partir da extensão do arquivo. Para stdin ou extensões não padrão, especifique explicitamente:
cat mystery_file | dasel -i json 'keys($this)'
Etapa 2 — Chaves de Nível Superior
cat config.yaml | dasel -i yaml 'keys($this)'
Saída: array de nomes de chaves de nível superior. Este é sempre o primeiro comando de exploração.
Etapa 3 — Pré-visualização da Estrutura
Para arquivos pequenos (configurações, manifestos), despeje o documento completo:
cat config.yaml | dasel -i yaml
Para arquivos grandes, pule para a Etapa 4.
Etapa 4 — Descoberta de Chaves Aninhadas
Navegue nível por nível:
cat config.yaml | dasel -i yaml 'server'
cat config.yaml | dasel -i yaml 'keys(server)'
cat config.yaml | dasel -i yaml 'keys(server.logging)'
Descoberta recursiva de chaves em todas as profundidades:
cat config.yaml | dasel -i yaml '..keys($this)'
Etapa 5 — Amostragem de Arrays
Pré-visualize os primeiros elementos sem carregar o array inteiro:
cat data.json | dasel -i json 'items[0:3]'
Inspeção de elemento único:
cat data.json | dasel -i json 'items[0]'
Etapa 6 — Inspeção de Tipo
Determine o tipo de qualquer nó:
cat data.json | dasel -i json 'typeOf(settings)'
cat data.json | dasel -i json 'typeOf(items[0].count)'
Valores retornados: "string", "array", "bool", "null", "int", "float"
Etapa 7 — Extração de Valor
Uma vez que o caminho é conhecido, extraia valores específicos:
cat config.yaml | dasel -i yaml 'database.connection.host'
cat data.json | dasel -i json 'users[0].email'
Padrões de Exploração
Exploração em Largura
Comece na raiz, enumere chaves em cada nível antes de ir mais fundo:
cat file.json | dasel -i json 'keys($this)' # Nível 0
cat file.json | dasel -i json 'keys(metadata)' # Nível 1
cat file.json | dasel -i json 'keys(metadata.labels)' # Nível 2
Exploração Baseada em Busca (Arquivos Grandes)
Quando o arquivo é muito grande para travessia manual, use search() com predicados:
# Encontre todos os objetos contendo uma chave específica
cat data.json | dasel -i json 'search(has("email"))'
# Encontre todos os objetos com chaves "id" e "name"
cat data.json | dasel -i json 'search(has("id") && has("name"))'
# Encontre nós onde um valor corresponde
cat data.json | dasel -i json 'search($this == 42)'
Contar Elementos
cat data.json | dasel -i json 'len(items)'
cat data.json | dasel -i json 'len(keys($this))'
Descoberta de Valores Únicos
Extraia um campo de todos os elementos do array e depois deduplicar no shell:
cat data.json | dasel -i json 'items.map(category)' | dasel -i json '$this...' | sort -u
Descida Recursiva
Encontre todos os valores para um nome de chave em qualquer profundidade:
cat data.json | dasel -i json '..name'
Obtenha o primeiro elemento de cada array aninhado:
cat data.json | dasel -i json '..[0]'
Receitas Específicas de Formato
Para comandos de exploração detalhados por formato, consulte Receitas Específicas de Formato.
Referências
- Documentação do Dasel v3 (obtido em 2026-02-19)
- Índice de Funções do Dasel (obtido em 2026-02-19)
- Repositório GitHub do Dasel (obtido em 2026-02-19)