@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,809 @@
|
|
|
1
|
+
# Installing jq
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
jq is a lightweight and flexible command-line JSON processor. It is designed to parse, filter, map, and transform structured JSON data with ease. Think of jq as sed or awk for JSON data - it allows you to slice, filter, and transform JSON with concise filter expressions.
|
|
6
|
+
|
|
7
|
+
jq is essential for developers and DevOps engineers who work with JSON-based APIs, configuration files, or any structured data. Common use cases include:
|
|
8
|
+
|
|
9
|
+
- Parsing API responses from curl or wget
|
|
10
|
+
- Extracting specific fields from JSON configuration files
|
|
11
|
+
- Transforming and reformatting JSON data
|
|
12
|
+
- Validating JSON syntax
|
|
13
|
+
- Scripting and automation with JSON data sources
|
|
14
|
+
|
|
15
|
+
jq has zero runtime dependencies and is written in portable C, making it extremely fast and easy to deploy across platforms.
|
|
16
|
+
|
|
17
|
+
## Dependencies
|
|
18
|
+
|
|
19
|
+
### macOS (Homebrew)
|
|
20
|
+
- **Required:**
|
|
21
|
+
- `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` or `dev install homebrew`
|
|
22
|
+
- **Optional:** None
|
|
23
|
+
- **Auto-installed:**
|
|
24
|
+
- `oniguruma` (regular expressions library) - Automatically installed by Homebrew as a jq dependency
|
|
25
|
+
|
|
26
|
+
### Ubuntu (APT/Snap)
|
|
27
|
+
- **Required:**
|
|
28
|
+
- `sudo` privileges - Pre-installed on Ubuntu
|
|
29
|
+
- `apt-get` - Pre-installed on Ubuntu
|
|
30
|
+
- **Optional:** None
|
|
31
|
+
- **Auto-installed:**
|
|
32
|
+
- Standard C libraries and jq dependencies are handled by APT package manager
|
|
33
|
+
|
|
34
|
+
### Raspberry Pi OS (APT/Snap)
|
|
35
|
+
- **Required:**
|
|
36
|
+
- `sudo` privileges - Pre-installed on Raspberry Pi OS
|
|
37
|
+
- `apt-get` - Pre-installed on Raspberry Pi OS
|
|
38
|
+
- **Optional:** None
|
|
39
|
+
- **Auto-installed:**
|
|
40
|
+
- Standard C libraries and jq dependencies are handled by APT package manager
|
|
41
|
+
|
|
42
|
+
### Amazon Linux (DNF/YUM)
|
|
43
|
+
- **Required:**
|
|
44
|
+
- `sudo` privileges - Pre-installed on Amazon Linux
|
|
45
|
+
- `dnf` (Amazon Linux 2023) or `yum` (Amazon Linux 2) - Pre-installed based on distribution version
|
|
46
|
+
- **Optional:** None
|
|
47
|
+
- **Auto-installed:**
|
|
48
|
+
- Standard C libraries and jq dependencies are handled by DNF/YUM package manager
|
|
49
|
+
|
|
50
|
+
### Windows (Chocolatey/winget)
|
|
51
|
+
- **Required:**
|
|
52
|
+
- `Chocolatey` - Install via PowerShell (Administrator): `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))` or `dev install chocolatey`
|
|
53
|
+
- **Optional:** None
|
|
54
|
+
- **Auto-installed:**
|
|
55
|
+
- PATH updates and system integration handled by Chocolatey
|
|
56
|
+
|
|
57
|
+
### Git Bash (Manual/Portable)
|
|
58
|
+
- **Required:**
|
|
59
|
+
- `curl` - Pre-installed with Git for Windows
|
|
60
|
+
- `/usr/local/bin` directory access - Created by the installer if needed
|
|
61
|
+
- **Optional:** None
|
|
62
|
+
- **Auto-installed:** None
|
|
63
|
+
|
|
64
|
+
## Prerequisites
|
|
65
|
+
|
|
66
|
+
Before installing jq on any platform, ensure:
|
|
67
|
+
|
|
68
|
+
1. **Internet connectivity** - Required to download packages
|
|
69
|
+
2. **Administrative privileges** - Required on most platforms for system-wide installation
|
|
70
|
+
3. **Package manager installed** - Each platform requires its respective package manager (Homebrew, APT, DNF/YUM, Chocolatey, etc.)
|
|
71
|
+
|
|
72
|
+
## Platform-Specific Installation
|
|
73
|
+
|
|
74
|
+
### macOS (Homebrew)
|
|
75
|
+
|
|
76
|
+
#### Prerequisites
|
|
77
|
+
|
|
78
|
+
- macOS 10.15 (Catalina) or later (macOS 14 Sonoma or later recommended)
|
|
79
|
+
- Homebrew package manager installed
|
|
80
|
+
- Terminal access
|
|
81
|
+
|
|
82
|
+
If Homebrew is not installed, install it first:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### Installation Steps
|
|
89
|
+
|
|
90
|
+
Run the following command to install jq via Homebrew:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
brew install --quiet jq
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The `--quiet` flag suppresses non-essential output, making the command suitable for automation scripts and CI/CD pipelines.
|
|
97
|
+
|
|
98
|
+
**Note**: Homebrew will automatically install the dependency `oniguruma` (a regular expressions library) if it is not already present.
|
|
99
|
+
|
|
100
|
+
#### Verification
|
|
101
|
+
|
|
102
|
+
Confirm the installation succeeded:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
jq --version
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Expected output (version numbers may vary):
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
jq-1.8.1
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Verify the installation path:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
which jq
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Expected output: `/opt/homebrew/bin/jq` (Apple Silicon) or `/usr/local/bin/jq` (Intel).
|
|
121
|
+
|
|
122
|
+
#### Troubleshooting
|
|
123
|
+
|
|
124
|
+
**Problem**: `jq: command not found` after installation
|
|
125
|
+
|
|
126
|
+
**Solution**: Homebrew may not be in your PATH. For Apple Silicon Macs, add Homebrew to your PATH:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
For a permanent fix, add this to your shell configuration:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc && source ~/.zshrc
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Problem**: `brew install jq` fails with permission errors
|
|
139
|
+
|
|
140
|
+
**Solution**: Fix Homebrew directory ownership:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
sudo chown -R $(whoami) $(brew --prefix)/*
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Problem**: Installation fails with network errors
|
|
147
|
+
|
|
148
|
+
**Solution**: Check your internet connection and try again. If behind a corporate proxy, configure Homebrew to use it:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
export ALL_PROXY=http://proxy.example.com:8080
|
|
152
|
+
brew install --quiet jq
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### Ubuntu/Debian (APT)
|
|
158
|
+
|
|
159
|
+
#### Prerequisites
|
|
160
|
+
|
|
161
|
+
- Ubuntu 18.04 LTS or later, or Debian 10 (Buster) or later
|
|
162
|
+
- sudo privileges
|
|
163
|
+
- Internet connectivity
|
|
164
|
+
|
|
165
|
+
jq is available in the default Ubuntu and Debian repositories and does not require adding external PPAs.
|
|
166
|
+
|
|
167
|
+
#### Installation Steps
|
|
168
|
+
|
|
169
|
+
Run the following command to update package lists and install jq:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y jq
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
176
|
+
|
|
177
|
+
#### Verification
|
|
178
|
+
|
|
179
|
+
Confirm the installation succeeded:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
jq --version
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Expected output (version numbers may vary depending on your distribution version):
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
jq-1.6
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Note**: Ubuntu and Debian repositories may contain slightly older versions of jq. The repository version is stable and recommended for most users. If you require the absolute latest version, see the "Building from Source" section in Common Issues.
|
|
192
|
+
|
|
193
|
+
Verify the installation path:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
which jq
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Expected output: `/usr/bin/jq`
|
|
200
|
+
|
|
201
|
+
#### Troubleshooting
|
|
202
|
+
|
|
203
|
+
**Problem**: `E: Unable to locate package jq`
|
|
204
|
+
|
|
205
|
+
**Solution**: Update the package list first:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Problem**: `Permission denied` errors
|
|
212
|
+
|
|
213
|
+
**Solution**: Ensure you are using `sudo` with the installation command.
|
|
214
|
+
|
|
215
|
+
**Problem**: Older jq version than expected
|
|
216
|
+
|
|
217
|
+
**Solution**: Ubuntu/Debian repositories prioritize stability over bleeding-edge releases. The repository version is sufficient for most use cases. For the latest version, download the binary directly from GitHub:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
curl -L -o /usr/local/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-amd64 && sudo chmod +x /usr/local/bin/jq
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### Raspberry Pi OS (APT)
|
|
226
|
+
|
|
227
|
+
#### Prerequisites
|
|
228
|
+
|
|
229
|
+
- Raspberry Pi OS (32-bit or 64-bit)
|
|
230
|
+
- Raspberry Pi 2 or later (Raspberry Pi 3B+ or later recommended for 64-bit)
|
|
231
|
+
- sudo privileges
|
|
232
|
+
- Internet connectivity
|
|
233
|
+
|
|
234
|
+
Raspberry Pi OS is based on Debian, so jq installation follows the same APT-based process. The package is available for both ARM architectures.
|
|
235
|
+
|
|
236
|
+
#### Installation Steps
|
|
237
|
+
|
|
238
|
+
Run the following command to update package lists and install jq:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y jq
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
245
|
+
|
|
246
|
+
#### Verification
|
|
247
|
+
|
|
248
|
+
Confirm the installation succeeded:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
jq --version
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Expected output (version numbers may vary):
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
jq-1.6
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Verify your architecture:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
uname -m
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Expected output: `aarch64` (64-bit) or `armv7l` (32-bit).
|
|
267
|
+
|
|
268
|
+
Verify the installation path:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
which jq
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Expected output: `/usr/bin/jq`
|
|
275
|
+
|
|
276
|
+
#### Troubleshooting
|
|
277
|
+
|
|
278
|
+
**Problem**: `E: Unable to locate package jq`
|
|
279
|
+
|
|
280
|
+
**Solution**: Update the package list first:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Problem**: Very slow download speeds
|
|
287
|
+
|
|
288
|
+
**Solution**: Raspberry Pi may have limited bandwidth. Use a wired ethernet connection for faster downloads, or wait for the installation to complete.
|
|
289
|
+
|
|
290
|
+
**Problem**: Installation fails with disk space errors
|
|
291
|
+
|
|
292
|
+
**Solution**: Check available disk space and clean up if needed:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
df -h
|
|
296
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
|
|
297
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get clean
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**Problem**: Need latest jq version on ARM
|
|
301
|
+
|
|
302
|
+
**Solution**: Download the ARM64 binary directly from GitHub:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
sudo curl -L -o /usr/local/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-arm64 && sudo chmod +x /usr/local/bin/jq
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
For 32-bit ARM (armv7l), use the `jq-linux-armhf` binary instead.
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
### Amazon Linux (DNF/YUM)
|
|
313
|
+
|
|
314
|
+
#### Prerequisites
|
|
315
|
+
|
|
316
|
+
- Amazon Linux 2023 (AL2023) or Amazon Linux 2 (AL2)
|
|
317
|
+
- sudo privileges
|
|
318
|
+
- Internet connectivity
|
|
319
|
+
|
|
320
|
+
jq is available in the default Amazon Linux repositories. Amazon Linux 2023 uses `dnf` as the package manager, while Amazon Linux 2 uses `yum`.
|
|
321
|
+
|
|
322
|
+
#### Installation Steps
|
|
323
|
+
|
|
324
|
+
**For Amazon Linux 2023:**
|
|
325
|
+
|
|
326
|
+
Run the following command to install jq:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
sudo dnf install -y jq
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**For Amazon Linux 2:**
|
|
333
|
+
|
|
334
|
+
Run the following command to install jq:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
sudo yum install -y jq
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
The `-y` flag automatically confirms installation prompts, enabling non-interactive execution.
|
|
341
|
+
|
|
342
|
+
#### Verification
|
|
343
|
+
|
|
344
|
+
Confirm the installation succeeded:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
jq --version
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Expected output (version numbers may vary):
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
jq-1.6
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Check which jq package is installed:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
rpm -q jq
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Expected output: `jq-1.6-x.amzn2023.x86_64` or similar.
|
|
363
|
+
|
|
364
|
+
#### Troubleshooting
|
|
365
|
+
|
|
366
|
+
**Problem**: `No match for argument: jq`
|
|
367
|
+
|
|
368
|
+
**Solution**: Refresh the repository cache:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
sudo dnf makecache
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Or for Amazon Linux 2:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
sudo yum makecache
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
**Problem**: `dnf: command not found` on Amazon Linux 2
|
|
381
|
+
|
|
382
|
+
**Solution**: Use `yum` instead of `dnf` on Amazon Linux 2:
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
sudo yum install -y jq
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**Problem**: Need the latest jq version
|
|
389
|
+
|
|
390
|
+
**Solution**: Amazon's repository may have an older version. Download the latest binary directly:
|
|
391
|
+
|
|
392
|
+
For x86_64 instances:
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
sudo curl -L -o /usr/local/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-amd64 && sudo chmod +x /usr/local/bin/jq
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
For ARM-based instances (Graviton):
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
sudo curl -L -o /usr/local/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-arm64 && sudo chmod +x /usr/local/bin/jq
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
**Problem**: Permission denied when running jq
|
|
405
|
+
|
|
406
|
+
**Solution**: Ensure the binary has execute permissions:
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
sudo chmod +x /usr/local/bin/jq
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
### Windows (Chocolatey)
|
|
415
|
+
|
|
416
|
+
#### Prerequisites
|
|
417
|
+
|
|
418
|
+
- Windows 10 (version 1803+) or Windows 11
|
|
419
|
+
- Chocolatey package manager installed
|
|
420
|
+
- Administrator PowerShell or Command Prompt
|
|
421
|
+
|
|
422
|
+
If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
|
|
423
|
+
|
|
424
|
+
```powershell
|
|
425
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
#### Installation Steps
|
|
429
|
+
|
|
430
|
+
Run the following command in an Administrator PowerShell or Command Prompt:
|
|
431
|
+
|
|
432
|
+
```powershell
|
|
433
|
+
choco install jq -y
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
|
|
437
|
+
|
|
438
|
+
Chocolatey downloads the appropriate binary (32-bit or 64-bit) based on your system architecture and adds it to the PATH automatically.
|
|
439
|
+
|
|
440
|
+
#### Verification
|
|
441
|
+
|
|
442
|
+
Open a **new** Command Prompt or PowerShell window (required for PATH to update), then run:
|
|
443
|
+
|
|
444
|
+
```powershell
|
|
445
|
+
jq --version
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Expected output (version numbers may vary):
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
jq-1.8.1
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Verify the installation path:
|
|
455
|
+
|
|
456
|
+
```powershell
|
|
457
|
+
where jq
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
Expected output: `C:\ProgramData\chocolatey\bin\jq.exe`
|
|
461
|
+
|
|
462
|
+
#### Troubleshooting
|
|
463
|
+
|
|
464
|
+
**Problem**: `jq` command not found after installation
|
|
465
|
+
|
|
466
|
+
**Solution**: Close all terminal windows and open a new Command Prompt or PowerShell. The PATH update requires a fresh terminal session.
|
|
467
|
+
|
|
468
|
+
**Problem**: `choco` command not found
|
|
469
|
+
|
|
470
|
+
**Solution**: Chocolatey may not be in PATH. Close all terminal windows, open a new Administrator PowerShell, and try again. If the issue persists, reinstall Chocolatey.
|
|
471
|
+
|
|
472
|
+
**Problem**: Installation fails with access denied
|
|
473
|
+
|
|
474
|
+
**Solution**: Ensure you are running PowerShell or Command Prompt as Administrator. Right-click and select "Run as administrator".
|
|
475
|
+
|
|
476
|
+
**Problem**: Need to use winget instead of Chocolatey
|
|
477
|
+
|
|
478
|
+
**Solution**: winget is also supported. Run the following in PowerShell or Command Prompt:
|
|
479
|
+
|
|
480
|
+
```powershell
|
|
481
|
+
winget install --id jqlang.jq --silent --accept-package-agreements --accept-source-agreements
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
The `--silent` flag ensures non-interactive installation.
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
### WSL (Ubuntu)
|
|
489
|
+
|
|
490
|
+
#### Prerequisites
|
|
491
|
+
|
|
492
|
+
- Windows 10 version 2004+ or Windows 11
|
|
493
|
+
- Windows Subsystem for Linux (WSL) with Ubuntu installed
|
|
494
|
+
- WSL 2 recommended for best performance
|
|
495
|
+
- sudo privileges within WSL
|
|
496
|
+
|
|
497
|
+
WSL Ubuntu installations follow the same process as native Ubuntu, using APT.
|
|
498
|
+
|
|
499
|
+
#### Installation Steps
|
|
500
|
+
|
|
501
|
+
Open your WSL Ubuntu terminal and run:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y jq
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure fully automated installation without prompts.
|
|
508
|
+
|
|
509
|
+
#### Verification
|
|
510
|
+
|
|
511
|
+
Confirm the installation succeeded:
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
jq --version
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
Expected output (version numbers may vary):
|
|
518
|
+
|
|
519
|
+
```
|
|
520
|
+
jq-1.6
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
Verify the installation path:
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
which jq
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
Expected output: `/usr/bin/jq`
|
|
530
|
+
|
|
531
|
+
#### Troubleshooting
|
|
532
|
+
|
|
533
|
+
**Problem**: `E: Unable to locate package jq`
|
|
534
|
+
|
|
535
|
+
**Solution**: Update the package list first:
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**Problem**: WSL itself is not installed
|
|
542
|
+
|
|
543
|
+
**Solution**: Install WSL from an Administrator PowerShell on Windows:
|
|
544
|
+
|
|
545
|
+
```powershell
|
|
546
|
+
wsl --install
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
Restart your computer after installation.
|
|
550
|
+
|
|
551
|
+
**Problem**: Network connectivity issues in WSL
|
|
552
|
+
|
|
553
|
+
**Solution**: WSL may have DNS resolution issues. Try restarting WSL:
|
|
554
|
+
|
|
555
|
+
```powershell
|
|
556
|
+
# From Windows PowerShell
|
|
557
|
+
wsl --shutdown
|
|
558
|
+
wsl
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
**Problem**: Need the latest jq version in WSL
|
|
562
|
+
|
|
563
|
+
**Solution**: Download the latest binary directly:
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
sudo curl -L -o /usr/local/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-amd64 && sudo chmod +x /usr/local/bin/jq
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
---
|
|
570
|
+
|
|
571
|
+
### Git Bash (Manual/Portable)
|
|
572
|
+
|
|
573
|
+
#### Prerequisites
|
|
574
|
+
|
|
575
|
+
- Windows 10 or Windows 11
|
|
576
|
+
- Git for Windows installed (includes Git Bash)
|
|
577
|
+
- Internet connectivity
|
|
578
|
+
|
|
579
|
+
Git Bash does not include jq by default. You must download the Windows binary and place it in a directory included in Git Bash's PATH.
|
|
580
|
+
|
|
581
|
+
#### Installation Steps
|
|
582
|
+
|
|
583
|
+
Open Git Bash and run the following commands:
|
|
584
|
+
|
|
585
|
+
**Step 1: Create the local bin directory (if it does not exist)**
|
|
586
|
+
|
|
587
|
+
```bash
|
|
588
|
+
mkdir -p /usr/local/bin
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
**Step 2: Download the jq Windows binary**
|
|
592
|
+
|
|
593
|
+
```bash
|
|
594
|
+
curl -L -o /usr/local/bin/jq.exe https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-windows-amd64.exe
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
This downloads jq version 1.8.1 directly from the official GitHub releases.
|
|
598
|
+
|
|
599
|
+
**Step 3: Verify the download (optional but recommended)**
|
|
600
|
+
|
|
601
|
+
The SHA-256 checksum for jq-windows-amd64.exe version 1.8.1 is:
|
|
602
|
+
`23cb60a1354eed6bcc8d9b9735e8c7b388cd1fdcb75726b93bc299ef22dd9334`
|
|
603
|
+
|
|
604
|
+
Verify the checksum:
|
|
605
|
+
|
|
606
|
+
```bash
|
|
607
|
+
sha256sum /usr/local/bin/jq.exe
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
#### Verification
|
|
611
|
+
|
|
612
|
+
Confirm the installation succeeded:
|
|
613
|
+
|
|
614
|
+
```bash
|
|
615
|
+
jq --version
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
Expected output:
|
|
619
|
+
|
|
620
|
+
```
|
|
621
|
+
jq-1.8.1
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
Verify jq is accessible:
|
|
625
|
+
|
|
626
|
+
```bash
|
|
627
|
+
which jq
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
Expected output: `/usr/local/bin/jq`
|
|
631
|
+
|
|
632
|
+
#### Troubleshooting
|
|
633
|
+
|
|
634
|
+
**Problem**: `jq: command not found`
|
|
635
|
+
|
|
636
|
+
**Solution**: The `/usr/local/bin` directory may not be in Git Bash's PATH. Add it manually:
|
|
637
|
+
|
|
638
|
+
```bash
|
|
639
|
+
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
**Problem**: Permission denied when downloading
|
|
643
|
+
|
|
644
|
+
**Solution**: Run Git Bash as Administrator. Press Windows key, type "Git Bash", then press Ctrl+Shift+Enter.
|
|
645
|
+
|
|
646
|
+
**Problem**: SSL certificate errors during download
|
|
647
|
+
|
|
648
|
+
**Solution**: Update the CA certificates or use the `-k` flag (not recommended for production):
|
|
649
|
+
|
|
650
|
+
```bash
|
|
651
|
+
curl -k -L -o /usr/local/bin/jq.exe https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-windows-amd64.exe
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
**Problem**: Need 32-bit version
|
|
655
|
+
|
|
656
|
+
**Solution**: Download the 32-bit binary instead:
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
curl -L -o /usr/local/bin/jq.exe https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-windows-i386.exe
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
**Problem**: Want to install to Git's built-in bin directory
|
|
663
|
+
|
|
664
|
+
**Solution**: Alternatively, copy to Git's usr/bin directory (requires running Git Bash as Administrator):
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
curl -L -o /usr/bin/jq.exe https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-windows-amd64.exe
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
---
|
|
671
|
+
|
|
672
|
+
## Post-Installation Configuration
|
|
673
|
+
|
|
674
|
+
jq works out of the box for most use cases. No additional configuration is typically required. The following optional tips may be useful:
|
|
675
|
+
|
|
676
|
+
### Shell Aliases
|
|
677
|
+
|
|
678
|
+
Create convenient aliases for common jq operations. Add to your shell configuration file (`~/.bashrc`, `~/.zshrc`, or `~/.bash_profile`):
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
# Pretty-print JSON
|
|
682
|
+
alias jsonpp='jq .'
|
|
683
|
+
|
|
684
|
+
# Compact JSON output
|
|
685
|
+
alias jsonc='jq -c .'
|
|
686
|
+
|
|
687
|
+
# Extract keys from JSON object
|
|
688
|
+
alias jsonkeys='jq keys'
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
### Tab Completion
|
|
692
|
+
|
|
693
|
+
jq supports Bash and Zsh tab completion for filter expressions. This is typically installed automatically with package manager installations.
|
|
694
|
+
|
|
695
|
+
For Homebrew on macOS, ensure completions are enabled:
|
|
696
|
+
|
|
697
|
+
```bash
|
|
698
|
+
echo '[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && source "$(brew --prefix)/etc/profile.d/bash_completion.sh"' >> ~/.bash_profile && source ~/.bash_profile
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### Test Your Installation
|
|
702
|
+
|
|
703
|
+
Verify jq can parse JSON correctly:
|
|
704
|
+
|
|
705
|
+
```bash
|
|
706
|
+
echo '{"name": "jq", "version": "1.8.1"}' | jq '.name'
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
Expected output:
|
|
710
|
+
|
|
711
|
+
```
|
|
712
|
+
"jq"
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
---
|
|
716
|
+
|
|
717
|
+
## Common Issues
|
|
718
|
+
|
|
719
|
+
### Issue: "jq: error: syntax error, unexpected INVALID_CHARACTER"
|
|
720
|
+
|
|
721
|
+
**Symptoms**: jq fails to parse input with strange character errors.
|
|
722
|
+
|
|
723
|
+
**Solution**: This often occurs when the input contains Windows-style line endings (CRLF) or invisible characters. Convert to Unix line endings:
|
|
724
|
+
|
|
725
|
+
```bash
|
|
726
|
+
# Using sed (Linux/macOS)
|
|
727
|
+
sed -i 's/\r$//' input.json
|
|
728
|
+
|
|
729
|
+
# Or pipe through tr
|
|
730
|
+
cat input.json | tr -d '\r' | jq .
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
### Issue: "jq: error: null cannot be parsed as a number"
|
|
734
|
+
|
|
735
|
+
**Symptoms**: jq fails when trying to perform arithmetic on null values.
|
|
736
|
+
|
|
737
|
+
**Solution**: Use the alternative operator `//` to provide default values:
|
|
738
|
+
|
|
739
|
+
```bash
|
|
740
|
+
echo '{"count": null}' | jq '.count // 0'
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
### Issue: Large JSON Files Cause Out of Memory
|
|
744
|
+
|
|
745
|
+
**Symptoms**: Processing very large JSON files causes jq to consume excessive memory.
|
|
746
|
+
|
|
747
|
+
**Solution**: Use streaming mode for large files:
|
|
748
|
+
|
|
749
|
+
```bash
|
|
750
|
+
jq --stream 'select(length==2)' large-file.json
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
Or use the `--slurpfile` option to process arrays incrementally.
|
|
754
|
+
|
|
755
|
+
### Issue: Color Output Not Working
|
|
756
|
+
|
|
757
|
+
**Symptoms**: jq output is not colorized when expected.
|
|
758
|
+
|
|
759
|
+
**Solution**: jq enables colors automatically when outputting to a terminal. If piping to another command, force colors with:
|
|
760
|
+
|
|
761
|
+
```bash
|
|
762
|
+
jq -C '.' file.json | less -R
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
### Issue: Need to Process Multiple JSON Files
|
|
766
|
+
|
|
767
|
+
**Symptoms**: Need to run jq on many files at once.
|
|
768
|
+
|
|
769
|
+
**Solution**: Use a loop or xargs:
|
|
770
|
+
|
|
771
|
+
```bash
|
|
772
|
+
# Using a loop
|
|
773
|
+
for f in *.json; do jq '.name' "$f"; done
|
|
774
|
+
|
|
775
|
+
# Using find and xargs
|
|
776
|
+
find . -name "*.json" -exec jq '.name' {} \;
|
|
777
|
+
```
|
|
778
|
+
|
|
779
|
+
### Issue: Building from Source
|
|
780
|
+
|
|
781
|
+
**Symptoms**: Need to build jq from source for a custom configuration.
|
|
782
|
+
|
|
783
|
+
**Solution**: Clone the repository and build:
|
|
784
|
+
|
|
785
|
+
```bash
|
|
786
|
+
git clone --recursive https://github.com/jqlang/jq.git
|
|
787
|
+
cd jq
|
|
788
|
+
autoreconf -i
|
|
789
|
+
./configure
|
|
790
|
+
make
|
|
791
|
+
sudo make install
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
**Note**: Building from source requires `autoconf`, `automake`, `libtool`, and a C compiler. On macOS, install these via Homebrew first. Use `./configure --disable-docs` if Ruby or Python dependencies are causing build failures.
|
|
795
|
+
|
|
796
|
+
---
|
|
797
|
+
|
|
798
|
+
## References
|
|
799
|
+
|
|
800
|
+
- [jq Official Website](https://jqlang.org/)
|
|
801
|
+
- [jq Manual](https://jqlang.org/manual/)
|
|
802
|
+
- [jq Tutorial](https://jqlang.org/tutorial/)
|
|
803
|
+
- [jq Download Page](https://jqlang.org/download/)
|
|
804
|
+
- [jq GitHub Repository](https://github.com/jqlang/jq)
|
|
805
|
+
- [jq GitHub Releases](https://github.com/jqlang/jq/releases)
|
|
806
|
+
- [jq Homebrew Formula](https://formulae.brew.sh/formula/jq)
|
|
807
|
+
- [jq Chocolatey Package](https://community.chocolatey.org/packages/jq)
|
|
808
|
+
- [jq Installation Wiki](https://github.com/jqlang/jq/wiki/Installation)
|
|
809
|
+
- [jqplay - Online jq Playground](https://jqplay.org/)
|