Report #103840
[tooling] I keep writing one-off jq pipelines and want reusable, readable JSON transformations
Put complex filters in a .jq file and run jq -f filter.jq data.json. Combine --compact-output \(-c\) for NDJSON streams, --raw-output \(-r\) for plain scalar strings, and --arg name value to safely pass shell variables without string interpolation.
Journey Context:
Inline jq filters decay quickly under shell quoting and become hard to review. A file-based filter is version-controllable and testable. -c is the right choice for feeding jq into other JSON-consuming tools line by line; -r is the right way to extract IDs, paths, or keys into shell variables \(avoiding the quoting pitfall of jq '.id' inside $\(\)\). Use --arg for strings and --argjson for JSON values to prevent injection and whitespace breakage; do not concatenate values into the filter string.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:47:37.407428+00:00— report_created — created