如何在 windows 中从 gitbash 运行 jq?

How to run jq from gitbash in windows?

我在 Windows 中有 gitbash。我正在尝试 运行 jq 但它给我错误。

$ ./jq-win64.exe 
jq 
parse error: Invalid numeric literal at line 2, column 0

意图:我想用jq解析json.

使用 github.com/stedolan/jq/releases 中的 jq-win64.exe,我得到

vonc@voncav MINGW64 /d/prgs/dl
$ ./jq-win64.exe --version
jq-1.6

vonc@voncav MINGW64 /d/prgs/dl
$ echo '{"foo": 0}' | ./jq-win64.exe .
{
  "foo": 0
}

所以它确实有效,但它取决于您正在使用它解析的 json 文档。
如果该 json 文档格式不正确,则会生成您看到的错误。

在您的 bash 会话中,您可以定义(或添加到您的 ~/.bashrc)别名:

alias jq=/path/to/jq-win64.exe

这样就不用./jq,直接jq.

$ echo '{"foo": 0}' | jq

就我而言:

vonc@voncav:/$ alias jq=/mnt/d/dwnl/jq-win64.exe
vonc@voncav:/$ echo '{"foo": 0}' | jq
{
  "foo": 0
}

我刚刚将二进制文件下载到 %HOMEPATH%/bin/jq-win64,它立即通过 jq

运行

我讨厌那些说你需要另一个工具才能使用另一个工具来下载的答案,但是使用 https://chocolatey.org/ 让这对我来说非常简单。

从提升的命令提示符,运行:

choco install jq

jq 从 bash 开始神奇地发挥作用。

而不是使用chocolatey (with elevated rights) you could also use scoop.sh

scoop install jq

最简单的解决方案,始终是最新版本:


运行 你的卷曲 gitbash:

curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe

或手动将上面 link 中的 jq-win64.exe 保存为 jq.exe 到您的 /usr/bin(在您的 git bash 安装中文件夹)

(如果您在代理后面,请添加 -x proxyhost:port

以下步骤对我在 git bash windows 10

有效
curl -L -o jq-win64.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe

export PATH=$PATH:"/C/Users/devops/Downloads/jq-win64.exe

jq --version

jq-1.6