如何在Windows中从gitbash运行jq?

Dot*_*per 6 bash git-bash jq

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

$ ./jq-win64.exe 
jq 
parse error: Invalid numeric literal at line 2, column 0
Run Code Online (Sandbox Code Playgroud)

目的:我想jq用来解析json。

MrS*_*ind 34

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


在你的 gitbash 中运行这个 curl:

curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
Run Code Online (Sandbox Code Playgroud)

或者手动保存jq-win64.exe上面的链接jq.exe到你的/usr/bin(在你的 git bash 安装文件夹中)

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

在此处输入图片说明

  • 您需要管理员权限才能将“/usr/bin/jq.exe”放入“Program Files”中,因此请保存到本地目录,然后手动复制到“C:\Program Files\Git\usr\bin”或者“以管理员身份”启动 Git Bash (14认同)
  • 我在 bash 内部遇到权限问题。我手动复制到C:\Program Files\Git\mingw64\bin (9认同)
  • 最简单的解决方案。 (4认同)
  • 最快的解决方案! (2认同)

bry*_*ook 30

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

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

choco install jq
Run Code Online (Sandbox Code Playgroud)

jq 从 bash 开始神奇地工作。


Von*_*onC 10

使用jq-win64.exegithub.com/stedolan/jq/releases,我得到

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
}
Run Code Online (Sandbox Code Playgroud)

这样就可以了,但是它取决于您要解析的json文档。
如果该json文档格式不正确,则会生成您看到的错误。

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

alias jq=/path/to/jq-win64.exe
Run Code Online (Sandbox Code Playgroud)

这样,您无需使用./jq,而是直接使用jq

$ echo '{"foo": 0}' | jq
Run Code Online (Sandbox Code Playgroud)

就我而言:

vonc@voncav:/$ alias jq=/mnt/d/dwnl/jq-win64.exe
vonc@voncav:/$ echo '{"foo": 0}' | jq
{
  "foo": 0
}
Run Code Online (Sandbox Code Playgroud)


kid*_*rax 5

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

$ mkdir -p $HOMEPATH/bin
$ curl -L -o $HOMEPATH/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
Run Code Online (Sandbox Code Playgroud)

测试

$ jq --version
jq-1.6
Run Code Online (Sandbox Code Playgroud)

  • 请详细说明这一点。 (7认同)

Mar*_* vA 5

除了使用Chocolatey(具有提升的权限)之外,您还可以使用scoop.sh

scoop install jq
Run Code Online (Sandbox Code Playgroud)