¿Qué es yq?
yq es un procesador de línea de comandos ligero y portátil para datos estructurados — YAML, JSON, XML, CSV, TOML y archivos properties — escrito en Go por Mike Farah. Usa una sintaxis estilo jq, así que todo lo que sabes de jq se transfiere directamente: consulta, transforma, fusiona y edita archivos in situ, en scripts y pipelines, con un único binario sin dependencias.
yq basado en python que se encuentra en algunos archivos; este paquete lo reemplaza limpiamente, y no requiere python ni jq.
apt upgrade te mantiene siempre en la última versión.
⚡ Características principales de yq
🔄 Seis formatos
YAML, JSON, XML, CSV/TSV, TOML y properties — lee uno, genera otro: yq -o=json '.' config.yaml convierte en un solo paso.
🧠 Sintaxis estilo jq
Rutas, pipes, funciones y operadores familiares. Si sabes escribir un filtro de jq, ya sabes usar yq con YAML.
✏️ Edición in situ
yq -i '.spec.replicas = 3' deploy.yaml — ediciones con scripts a manifiestos de Kubernetes, configuraciones de CI y archivos Compose, con los comentarios preservados.
📦 Cero dependencias
Un único binario estático en Go. Sin runtime, sin librerías, sin python — ideal para contenedores mínimos y runners de CI.
🔀 Fusiones y anchors
Fusiona en profundidad varios archivos, resuelve anchors y alias de YAML, maneja flujos multi-documento — los casos difíciles de YAML bien resueltos.
📖 Página de manual incluida
Este paquete incluye la página de manual completa junto al binario — man yq funciona sin conexión, siguiendo las convenciones de Debian.
🏆 ¿Por qué instalarlo con apt?
- Apto para flotas: fija un solo repositorio en tus imágenes base y cada servidor, contenedor y runner de CI obtiene el mismo yq actualizado
- Sin curl-to-bin: un repositorio firmado con GPG en lugar de descargar binarios a mano en
/usr/local/bin - El yq correcto: garantiza la semántica de mikefarah/yq v4 en todas partes — sin sorpresas del envoltorio en python en algunas máquinas
- Actualizaciones automáticas: las nuevas versiones upstream llegan con tu
apt upgradehabitual - Multi-arch: amd64, arm64, armhf, ppc64el, s390x y riscv64
📦 Instalación desde deb.griffo.io
Paso 1: Agregar repositorio
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 un espejo gratis para siempre. deb-free.griffo.io sirve paquetes gratis para siempre: sin cuenta, sin suscripción, como máximo 2 meses por detrás del upstream, correcciones de seguridad inmediatas. Ahora mismo incluye cliamp, Ghostty, lazydocker, Oh My Posh y Zed; yq no está entre ellas, así que hoy el repositorio de arriba es la única forma de instalarlo — pídelo y puede añadirse.
Paso 2: Instalar yq
sudo apt install -y yqapt install -y yq🚀 Primera ejecución
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📦 Repositorio de construcción de paquetes
Los paquetes de Debian se construyen y mantienen automáticamente en este repositorio de GitHub:
- 📂 yq-debian - Latest release builds
🔗 Paquetes relacionados
También disponible desde deb.griffo.io:
- k9s - TUI de Kubernetes — combina con yq para manejar manifiestos
- lazydocker - TUI de Docker para los archivos Compose que acabas de editar
- just - Un ejecutor de comandos para envolver tus one-liners de yq
💝 Apoya este proyecto
Si este repositorio te ahorra tiempo y esfuerzo, ¡considera apoyarlo!