Vai al contenuto

HTML_TAG_158_ __HTML_TAG_159_ Tutti i comandi jq_HTML_TAG_160 HTML_TAG_161_📄 Genera jq PDF Guida_HTML_TAG_162

jq Cheatsheet - Command-line JSON Processore

Installazione

Tabella_166

Comandi di base

Tabella_167_

Uso avanzato

Tabella_168_

String Operations

Tabella_169

Configurazione

Opzioni Command-Line

# Raw output (no JSON quotes for strings)
jq -r '.field' file.json

# Compact output (single line)
jq -c '.' file.json

# Sort object keys
jq -S '.' file.json

# Slurp mode (read entire input into array)
jq -s '.' file1.json file2.json

# Null input (don't read stdin)
jq -n '{created: now}'

# Exit status based on output
jq -e '.field' file.json  # Exit 1 if false/null

# Color output control
jq -C '.' file.json  # Force color
jq -M '.' file.json  # Disable color

# Custom indentation
jq --indent 4 '.' file.json
jq --tab '.' file.json

# Read filter from file
jq -f filter.jq data.json

# Pass variables to jq
jq --arg name "John" '{user: $name}' -n
jq --argjson count 42 '{total: $count}' -n
jq --slurpfile data file.json '{imported: $data}' -n

# Multiple inputs
jq --jsonargs '. | @json' --args arg1 arg2 arg3

Variabili ambientali

# Customize output colors (format: null:false:true:numbers:strings:arrays:objects)
export JQ_COLORS="0;90:0;91:0;92:0;93:0;94:0;95:0;96"

# Default colors (bright theme)
export JQ_COLORS="1;30:0;39:0;39:0;39:0;32:1;39:1;39"

# Disable colors entirely
export NO_COLOR=1

Filtro file

Creare file di filtro riutilizzabili per operazioni complesse:

# filter.jq
.data[]
| select(.status == "active")
| {
    id: .id,
    name: .name,
    created: .timestamp | strftime("%Y-%m-%d")
  }

# Usage
jq -f filter.jq data.json

Common Use Cases

Use Case: Parse API Response

Traduzione:

Use Case: Process AWS CLI Output

Traduzione:

Use Case: Log Analysis

Traduzione:

Use Case: Transform Data Structure

Traduzione:

Use Case: Configuration Management

Traduzione:

Migliori Pratiche

  • Utilizza -r_ per gli script: Quando estrarre i valori per gli script di shell, utilizzare l'output raw per evitare stringhe citate
  • Si'. Operazioni a catena con | invece di più chiamate jq per prestazioni migliori
  • Test filtri incrementalmente: Costruire filtri complessi passo per passo, testando ogni parte con i dati del campione
  • I campi mancanti. Utilizzare //operatore o try-catch per fornire i default per i campi opzionali
  • Utilizza -e_ per la validazione: Imposta lo stato di uscita in base all'output per una gestione affidabile degli errori negli script
  • Store filtri complessi: Salvare i filtri riutilizzabili nei file .jq e utilizzare l'opzione -f per la manutenzione
  • Si'. Filtri jq monoquote in guscio per evitare l'espansione delle shell di caratteri speciali
  • Utilizzare select prima __INLINE_CODE_93_: filtrare i dati prima di trasformarli per migliorare le prestazioni su grandi set di dati
  • Leverage --arg_ per la sicurezza: passare i valori esterni come argomenti invece di interpolazione stringa per prevenire l'iniezione
  • Profilo di grandi operazioni: Utilizzare --debug flag per comprendere l'esecuzione dei filtri e ottimizzare i colli di bottiglia

Risoluzione dei problemi

Tabella_170_

Riferimento: Operatori

TABLE_171_| and__________not | Operatori logici | jq '.a and .b'_