O que é o yq?
O yq é um processador de linha de comando leve e portátil para dados estruturados — arquivos YAML, JSON, XML, CSV, TOML e properties — escrito em Go por Mike Farah. Ele usa sintaxe no estilo do jq, então tudo o que você sabe do jq se transfere diretamente: consulte, transforme, mescle e edite arquivos no local, em scripts e pipelines, com um único binário sem dependências.
yq baseado em python encontrado em alguns arquivos; este pacote o substitui de forma limpa, e nenhum python ou jq é necessário.
apt upgrade mantém você sempre na versão mais recente.
⚡ Principais Recursos do yq
🔄 Seis Formatos
YAML, JSON, XML, CSV/TSV, TOML e properties — leia um, produza outro: yq -o=json '.' config.yaml converte em um único passo.
🧠 Sintaxe no Estilo do jq
Caminhos, pipes, funções e operadores familiares. Se você sabe escrever um filtro jq, já sabe usar o yq em YAML.
✏️ Edição no Local
yq -i '.spec.replicas = 3' deploy.yaml — edições via script em manifestos do Kubernetes, configurações de CI e arquivos Compose, com comentários preservados.
📦 Zero Dependências
Um único binário estático em Go. Sem runtime, sem bibliotecas, sem python — ideal para contêineres mínimos e runners de CI.
🔀 Merge e Âncoras
Faz merge profundo de múltiplos arquivos, resolve âncoras e aliases de YAML, lida com fluxos de múltiplos documentos — os casos difíceis de YAML feitos do jeito certo.
📖 Página de Manual Incluída
Este pacote traz a página de manual completa junto com o binário — man yq funciona offline, seguindo as convenções do Debian.
🏆 Por que instalar com o apt?
- Amigável a frotas: fixe um repositório nas suas imagens base e cada servidor, contêiner e runner de CI recebe o mesmo yq atual
- Sem curl-para-bin: um repositório assinado com GPG em vez de baixar binários manualmente para
/usr/local/bin - O yq certo: garante a semântica do mikefarah/yq v4 em todo lugar — sem surpresas do wrapper em python em algumas máquinas
- Atualizações automáticas: novos lançamentos upstream chegam com o seu
apt upgradede sempre - Multi-arquitetura: amd64, arm64, armhf, ppc64el, s390x e riscv64
📦 Instalação a partir do deb.griffo.io
Passo 1: Adicionar repositório
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update🆓 Existe um espelho grátis para sempre. deb-free.griffo.io distribui pacotes grátis para sempre — sem conta, sem assinatura, no máximo 2 meses atrás do upstream, correções de segurança imediatas. Hoje ele traz cliamp, Ghostty, lazydocker, Oh My Posh e Zed; yq não está entre elas, então o repositório acima é a única forma de instalar hoje — peça e ela pode ser adicionada.
Passo 2: Instalar o yq
sudo apt install -y yqapt install -y yq🚀 Primeira execução
yq '.services | keys' docker-compose.yml # query
yq -i '.image.tag = "1.2.3"' values.yaml # edit in place
yq -o=json '.' config.yaml # YAML -> JSON📦 Repositório de construção de pacotes
Os pacotes do Debian são construídos e mantidos automaticamente neste repositório do GitHub:
- 📂 yq-debian - Compilações de lançamento mais recente
🔗 Pacotes relacionados
Também disponíveis no deb.griffo.io:
- k9s - TUI para Kubernetes — combina com o yq para lidar com manifestos
- lazydocker - TUI para Docker para os arquivos Compose que você acabou de editar
- just - Um executor de comandos para envolver seus one-liners de yq
💝 Apoie Este Projeto
Se este repositório economiza seu tempo e esforço, considere apoiá-lo!