zoukankan      html  css  js  c++  java
  • 使用jq工具在Shell命令行处理JSON数据

           由于近期要处理一些 JSON 数据格式。一大早经过一番搜索后,终于找到了 jq 这个非常棒的工具。jq 同意你直接在命令行下对 JSON 进行操作,包含分片、过滤、转换等等。

          首先在mac下安装jq。使用brew install jq就能够了,前提是安装了homebrew。假设在linux ubuntu下。应该能够使用sudo apt-get install jq安装。

    让我们通过几个样例来说明 jq 的功能:
    一、输出格式化,美丽的打印效果
    假设我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,可是通过 jq 的 .(点)过滤器就能够立刻让 JSON 的格式规整起来。
    1.用文本编辑器打开后的样子

    2.用 jq 显示的结果,以后在终端下看json舒服了!

    $ jq . package.json 
    {
      "scripts": {
        "test": "grunt test"
      },
      "engines": {
        "node": ">=0.10.0"
      },
      "devDependencies": {
        "karma-ng-html2js-preprocessor": "^0.1.0",
        "karma": "^0.12.19",
        "grunt-karma": "^0.8.3",
        "karma-ng-scenario": "^0.1.0",
        "time-grunt": "~0.2.1",
        "load-grunt-tasks": "~0.4.0",
        "jshint-stylish": "~0.1.3",
        "grunt-usemin": "~2.0.0",
        "grunt-svgmin": "~0.2.0",
        "grunt-rev": "~0.1.0",
        "grunt-ngmin": "~0.0.2",
        "grunt-newer": "~0.6.1",
        "grunt-contrib-connect": "~0.5.0",
        "grunt-contrib-concat": "~0.3.0",
        "grunt-contrib-compass": "~0.7.2",
        "grunt-contrib-clean": "~0.5.0",
        "grunt-concurrent": "~0.5.0",
        "grunt-bower-install": "~1.0.0",
        "grunt-autoprefixer": "~0.4.0",
        "grunt": "~0.4.1",
        "grunt-contrib-copy": "~0.4.1",
        "grunt-contrib-cssmin": "~0.7.0",
        "grunt-contrib-htmlmin": "~0.1.3",
        "grunt-contrib-imagemin": "~0.3.0",
        "grunt-contrib-jshint": "~0.7.1",
        "grunt-contrib-uglify": "~0.2.0",
        "grunt-contrib-watch": "~0.5.2",
        "grunt-google-cdn": "~0.2.0"
      },
      "dependencies": {},
      "version": "0.0.0",
      "name": "myyo"
    }
    


    二、高速查询JSON数据

    利用 jq 可以以 key 作为keyword来对 JSON 作出高速查询, 比如:

    $ jq .version package.json 
    "0.0.0"

    jq 的键查询也支持链式调用,如:

    $ jq .scripts.test package.json 
    "grunt test"
    


    三、jq的管道操作

    熟悉命令行的朋友可能都知道 | (管道)是一个很强大的 武器。幸运的是,jq 也提供了对管道的支持。

    $ jq '.devDependencies|{ karma }' package.json 
    {
      "karma": "^0.12.19"
    }
    

    在这里,我们使用管道过滤并构造出karma对象


    四、总结
    假设你须要在命令行下处理 JSON,我强烈推荐 jq。jq 不仅 可以满足一般性的常见需求,更包括运算、内置函数、条件比較、 变量声明、自定函数等强大功能。很多其它内容可以通过 jq 的官方手冊进行学习。
  • 相关阅读:
    JVM 常量池、运行时常量池、字符串常量池
    JVM Direct Memory
    JVM 方法区
    JVM GC Roots
    jvm 堆
    jvm slot复用
    JVM 虚拟机栈
    JVM 程序计数器
    java打印树形目录结构
    java 通过反射获取数组
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5345192.html
Copyright © 2011-2022 走看看