jq是一个很轻量却很强大的命令行下的json解析器。jq是json中的“sed”命令,它可以用来slice、filter、map、transform json数据。jq是用C编写的,它没有其他依赖,你可以直接下载一个可执行文件,然后拷贝到其他机器上去执行,完全没有问题。

安装

jq用C语言编写,运行时无需其他依赖,它几乎可以运行在任何平台上。如果你是Linux、OS X、或者Windows,可以直接下载二级制版本。

二进制版本知己可以运行,但是在OS X、和Linux上,记得chmod +x jq

jq 1.5已经集成到Debian和Ubuntu的官方源中,运行sudo apt-get install jq即可

jq 1.5已集成到Fedora的官方源中,运行sudo dnf install jq即可

jq 1.4已经集成到openSuse官方源中,运行sudo zypper install jq即可

Arch用户,已经在AUR中准备了PKGBUILD,参考ArchWiki去安装

语法

github上有一个json的接口,调用它会得到一串json,下面的例子就使用这串json数据。

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’

上面的接口已经返回了格式化好的json串,如果没有,我们可以使用jq,格式化一下:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.’

我们还可以只取其中的第一条数据:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.[0]’

只取某些特定的字段,下面是取出第一个数据中的,commit节点下的message字段和commit节点下的committer节点下的name字段:

curl ‘https://api.github.com/repos/stedolan/jq/commits?per_page=5’ | jq ‘.[0] | {message: .commit.message, name: .commit.committer.name}’

//结果

{

“message”: “Merge pull request #162 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161”,

“name”: “Stephen Dolan”

}

.[0]取得了JsonArray中的第一个元素;.commit.message取得了json中具体的属性值.

jq ‘.[] | {message: .commit.message, name: .commit.committer.name}’

取出全部的commit:

jq ‘.[] | {message: .commit.message, name: .commit.committer.name}’

.[] 取出全部的元素,然后将相应的字段赋值给message,name.

如果想把上面的结果放在Array里,我们可以这样:

jq ‘[.[] | {message: .commit.message, name: .commit.committer.name}]’

//结果

[

{

“message”: “Merge pull request #163 from stedolan/utf8-fixes\n\nUtf8 fixes. Closes #161”,

“name”: “Stephen Dolan”

},

{

“message”: “Reject all overlong UTF8 sequences.”,

“name”: “Stephen Dolan”

}

]

jq linux下载文件,linux下的json命令行工具–jq相关推荐

  1. linux下的安装命令行工具下载,本地安装DEB包的3种命令行工具(适合Debian体系)

    1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(dpkg.apt和gdebi)在Debian及其衍生产品(如Ubuntu和Linux Mint)中安装本地软件包(. deb). 这对那 ...

  2. lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具

    那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和"淘气" . Linux命令及Lin ...

  3. linux终端使用python3,3 个 Python 命令行工具 | Linux 中国

    原标题:3 个 Python 命令行工具 | Linux 中国 用 Click.Docopt 和 Fire 库写你自己的命令行应用. -- Jeff Triplett, Lacey Williams ...

  4. 能直接下载了!微软最爽命令行工具登陆Windows 10,GitHub标星已破4万6

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 微软正式放出命令行工具Windows Terminal. 这个在发布之际就引得开发者大呼"WoW!Awesome!My God! ...

  5. JSON 命令行工具

    原文链接: https://wxaxiaoyao.cn/article/92 JQ jq 是一个处理 JSON 数据的 LINUX 命令行工具. 命令帮助 jq - commandline JSON ...

  6. 教你写一个可以找到.m文件所有接口名的命令行工具

    项目github 出发点 今天工作中写了一个工具类,在.m中完成所有功能后,发觉把所有接口从.m中拷贝到.h中声明,好麻烦啊,所以就考虑写个命令行工具来做这些工作. 想要达到的结果 我们设计这个小工具 ...

  7. Android 下使用 FFmpeg 命令行工具与问题排查

    目录 FFmpeg 命令行工具 将相关文件加入到项目中 修改 ffmpeg 源码 问题排查 上一篇文章 中,我们已经成功编译了 FFmpeg 的主要库并集成到了我们的 Android 应用中.我们暂时 ...

  8. jq linux下载文件,Linux中的Json格式化神器jq下载与安装

    一款在Linux中使用的Json格式化神器jq,对于JSON格式而言,jq就像sed/awk/grep这些神器一样的方便,而且jq在Linux下安装使用没有太多的依赖,只需要一个binary文件jq就 ...

  9. 如何通过http从linux下载文件,linux – 我可以通过http验证大量文件下载吗?

    在服务器端,您可以使用dd和md5sum来校验文件的每个块: #!/bin/bash FILENAME="$1" FILESIZE=`stat --printf="%s& ...

最新文章

  1. 分享Kali Linux 2017.1镜像
  2. Leetcode 203. 移除链表元素 (每日一题 20210914)
  3. c++实现ftp服务器_第三步,尝试用树莓派搭建你的云计算平台和服务器
  4. HTML加固5——汇总
  5. revit如何根据坐标进行画线_在工程设计中如何根据工艺阀门的结构与特点来进行设计呢?...
  6. java+什么时候才需要deploy_细思极恐 - 什么才是真正的会写 Java ?
  7. Spring Cloud Alibaba 深度解密!
  8. 信息学奥赛一本通(1017:浮点型数据类型存储空间大小)
  9. javascript编写_如何在JavaScript中使用解构来编写更简洁,功能更强大的代码
  10. markdown简明使用语法
  11. MCU VR班會(07)記錄
  12. Jlink按照用zadig升级用于openocd后,还原
  13. IEEE802.5 令牌环网
  14. 无限循环滚动代码阿里巴巴国际站店铺装修代码底图滚动黑色半透明显示效果自定义内容装修代码全屏显示
  15. Mac PhotoShop CS6破解
  16. 计算机硬件运行维护论文,计算机硬件维护毕业论文.doc
  17. mit计算机33门课程_550多门免费在线编程和计算机科学课程,您可以在本年十月开始...
  18. 刷B站学数分Day1|如何写出一份合格的数据分析师简历
  19. 《简单法则》读书笔记
  20. Caffe 理解blob之SyncedMen类同步CPU和GPU

热门文章

  1. 万物互联时代,oasis助力数据存储保护
  2. 什么是SAN网络?SAN网络上的存储备份和恢复怎么操作?SAN 测试网络存储与服务器架构架构优化
  3. HTML+CSS学习笔记整理-七七八八
  4. 手绘动画用哪个软件比较好?分享5个好用的手绘动画软件
  5. c语言中 mf什么意思,mf是什么意思(单反相机的对焦怎么用)
  6. 为发烧而生:个人电脑诞生记
  7. plt.plot()的使用
  8. 横空出世。复盘B站面试坑我最深的Java并发:JDK源码剖析。B站五面面经(附过程、答案)
  9. 28 字符串排列(还差点,list包含、Arrays、Collections的sort)全排列
  10. mapreduce多目录输出(MultipleOutputFormat和MultipleOutputs)