【问题标题】:How to run jq from gitbash in windows?如何在 Windows 中从 gitbash 运行 jq?
【发布时间】:2019-05-26 19:40:42
【问题描述】:

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

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

意图:我想用jq来解析json。

【问题讨论】:

  • 您看到的错误消息是在 mintty 中运行它的副作用。报告here。不带参数运行它会触发它从标准输入读取,并尝试将 jq 解析为输入。
  • 我很难做到这一点。我做了这个问题中提到的所有事情,当我在我的 git bash 中运行 jq 时,我得到了回应。有人可以帮助我吗?

标签: bash jq git-bash


【解决方案1】:

使用来自github.com/stedolan/jq/releasesjq-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
}

【讨论】:

  • 感谢冯的回复。我们如何只使用 jq 而不是全名 - ./jq-win64.exe 例如。回声'{“foo”:0}' | 。甚至可以从 gitbash-windows.提前致谢。
  • @DotNetDeveloper 当然:​​使用别名。请参阅我编辑的答案。
  • 谢谢你,它就像一个魅力..别名对 git bash 很有帮助..
  • 输入后cli无限期挂起:/my/path/to/jq-win64.exe
  • @chaixdev 在脚本中,你有几个选择使用你的jq 别名:askubuntu.com/a/98786/5470
【解决方案2】:

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

【讨论】:

  • 请详细说明。
【解决方案3】:

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

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

choco install jq

jq 从 bash 开始神奇地工作。

【讨论】:

  • 它就像一个魅力!为了安装 choco,我在提升的 PowerShell 中使用了以下命令:Set-ExecutionPolicy Bypass -Scope Process -Force; ` iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
  • 您好,我想知道我应该在哪个路径运行这个命令?
  • 这就像一个魅力!!!!昨天我花了一整天的时间来解决这个问题!希望我能早点看到这个解决方案,谢谢!!!!
  • 太棒了!这是一个回答!
  • 像魅力一样工作
【解决方案4】:

您也可以使用scoop.sh,而不是使用chocolatey(具有提升的权限):

scoop install jq

【讨论】:

    【解决方案5】:

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


    在你的 gitbash 中运行这个 curl:

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

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

    (如果您使用代理,请添加-x proxyhost:port

    【讨论】:

    • 最简单的解决方案。
    • 最快的解决方案!
    【解决方案6】:

    以下步骤在 Windows 10 上的 git bash 中对我有用

    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
    
    

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 2014-02-04
      • 2018-08-06
      • 2014-10-05
      • 2019-07-15
      • 2017-10-19
      • 2016-03-19
      • 1970-01-01
      • 2019-01-23
      相关资源
      最近更新 更多