[Linux] jq:命令行JSON处理工具

jq命令帮助我们很方便地在终端查看和处理json文件

jq命令的帮助信息:

[email protected]:bgs$ jq -h
jq - commandline JSON processor [version 1.5-1-a5b5cbe]
Usage: jq [options] <jq filter> [file...]

    jq is a tool for processing JSON inputs, applying the
    given filter to its JSON text inputs and producing the
    filter‘s results as JSON on standard output.
    The simplest filter is ., which is the identity filter,
    copying jq‘s input to its output unmodified (except for
    formatting).
    For more advanced filters see the jq(1) manpage ("man jq")
    and/or https://stedolan.github.io/jq

    Some of the options include:
     -c        compact instead of pretty-printed output;
     -n        use `null` as the single input value;
     -e        set the exit status code based on the output;
     -s        read (slurp) all inputs into an array; apply filter to it;
     -r        output raw strings, not JSON texts;
     -R        read raw strings, not JSON texts;
     -C        colorize JSON;
     -M        monochrome (don‘t colorize JSON);
     -S        sort keys of objects on output;
     --tab    use tabs for indentation;
     --arg a v    set variable $a to value <v>;
     --argjson a v    set variable $a to JSON value <v>;
     --slurpfile a f    set variable $a to an array of JSON texts read from <f>;
    See the manpage for more options.

使用:

$ jq . xxx.json   # 直接将文件名传给 jq
$ cat bgs_enterprise_info_norm.json | jq .  #或者由其他命令读出文件内容,并传给 jq

例子:

原始数据:

[email protected]:bgs$ head -n2 bgs_enterprise_info_norm.json
{"industry": "纺织服装、服饰业", "name": "xxx公司", "business": "xxxxx", "description": "空值"}
{"industry": "批发业", "name": "xxx公司", "business": "xxxxx", "description": "空值"}

格式化:

[email protected]:bgs$ head -n2 bgs_enterprise_info_norm.json | jq .
{
  "industry": "纺织服装、服饰业",
  "name": "xxx公司",
  "business": "xxxxx",
  "description": "空值"
}
{
  "industry": "批发业",
  "name": "xxx公司",
  "business": "xxxxx",
  "description": "空值"
}

选取某属性:

[email protected]:bgs$ head -n2 bgs_enterprise_info_norm.json | jq .industry
"纺织服装、服饰业"
"批发业"
[email protected]:bgs$ jq .description bgs_enterprise_info_norm.json | grep 空值 | wc -l
2770786

参考:

linux 命令之jq

jq : Linux下json的命令行工具

命令行 JSON 处理工具 jq 的使用介绍

时间: 2024-10-11 10:50:44

[Linux] jq:命令行JSON处理工具的相关文章

tcpdump 命令行抓包工具

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3898248.html 概述 tcpdump命令是Linux中的截包命令工具,强大且易于使用.tcpdump基于底层libpcap库开发,运行需要root权限. 基本使用与命令选项 例:截获主机收到和发出的所有数据包. 命令:tcpdump 说明: tcpdump截取包默认显示数据包的头部. 基础格式:时间 数据包类型 源

命令行视频下载工具you-get和youtube-dl

you-get和youtube-dl都是基于python的命令行媒体文件下载工具,完全开源免费跨平台.用户只需使用简单命令并提供在线视频的网页地址即可让程序自动进行嗅探.下载.合并.命名和清理,最终得到已经命名的完整视频文件.两者搭配使用几乎可以下载所有主流视频网站的视频及有关资源,配合本地播放器还可直接播放在线视频,彻底避免广告和浏览器插件的困扰. 在安装使用之前需要进行以下部署工作: 安装python3和pip 安装媒体处理工具FFmpeg you-get 官网:https://you-ge

28 个 Unix/Linux 的命令行神器

28 个 Unix/Linux 的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这 些工具都非常不错,希望每个人都知道.本篇文章还在Hacker News上被讨论,你可以过去看看.我以作者的原文中加入了官网链接和一些说明. dstat & sar iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在<性能调优攻略>中提到过那三个

1001种玩法 | Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库

Python Prompt Toolkit:构建强大交互式命令行的 Python 工具库 prompt_toolkit 是一个用于构建强大交互式命令行的 Python 工具库. 你是不是在找交互式的 Python shell 工具 ptpython 呢?我们把 ptpython 的源码转移到了一个独立的仓库.如此一来,我们确信  prompt_toolkit 库不会被其他 ptpython 东西"污染",并且 ptpython 也可以独立开发.现在必须用下面这个命令安装 ptpytho

28个Unix/Linux的命令行神器

下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具都非常不错,希望每个人都知道.本篇文章还在Hacker News上被讨论,你可以过去看看.我以作者的原文中加入了官网链接和一些说明. dstat & sar iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在<性能调优攻略>中提到过那三个xxstat工具). 官方网站:http://d

28个Unix/Linux的命令行神器(转载)

下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具都非常不错,希望每个人都知道.本篇文章还在Hacker News上被讨论,你可以过去看看.我以作者的原文中加入了官网链接和一些说明. dstat & sar iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在<性能调优攻略>中提到过那三个xxstat工具). 官方网站:http://d

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

Linux快捷键-命令行下

LINUX中命令行下是没有鼠标的,所以所有的操作只能通过键盘来实现.确实,鼠标对于电脑而言感觉还是很重要的,相对与Windows,Linux在易操作性上差的很多.所以,对于我们技术人员来讲,刚开始学习Linux的时候,是一种痛并快乐着的感觉吧! 这是我学习Linux的第一篇博文,在此纪念一下,希望在未来的多少年后,我还能想到看到它! 在学习Linux的时候,有非常多的快捷键.这些快捷键可以加快我们的效率,同时也是一件很有乐趣的事情.今天整理了一下最近用的比较多的一些SHELL中的一些快捷键,鼓励

Win10系统开启Linux Bash命令行

在Build2016上微软为了拉拢开发者发了个大招,那就是Win10一周年更新集成原生Linux Bash命令行功能,这将允许开发者或用户在Windows10系统上以命令行形式运行Linux程序,现在Win10运行Linux GUI应用也已成真.微软在推送的Win10一周年更新预览版14316中,该版本中包含了大部分已宣布内容,其中包括了一项重要的原生支持Linux Bash命令行支持.即用户现在即使不使用Linux系统或Mac电脑就可以在Win10上使用Bash,那么如何在Win10系统上开启