Configcompare Portable May 2026
# Using jq to show only differing paths diff <(jq -S . file1.json) <(jq -S . file2.json) | grep '^[<>]' | sed 's/^[<>] //' Often you want to ignore timestamps, versions, or auto-generated IDs.
jq 'del(.metadata.generated, .timestamp)' file1.json configcompare
diff -u file1_normalized.json file2_normalized.json Better yet, use a structural diff tool that understands paths: # Using jq to show only differing paths diff <(jq -S
#!/bin/bash # Usage: configcompare file1.json file2.json # configcompare file1.yaml file2.yaml FILE1=$1 FILE2=$2 EXT="$FILE1##*." (jq -S . file1.json) <
diff <(grep -v '^[[:space:]]*"version"' file1.json) \ <(grep -v '^[[:space:]]*"version"' file2.json) For deeply nested configs, use git diff --no-index with color: