在Shell命令行处理JSON数据的方法

   2015-11-09 0
核心提示:这篇文章主要介绍了在Shell命令行处理JSON数据的方法,使用jq工具实现,需要的朋友可以参考下

因为最近要处理一些 JSON 数据格式,所以在经过一番搜索后 最终找到了 jq 这个很棒的工具。jq 允许你直接在命令行下对 JSON 进行操作,包括分片、过滤、转换等等。
让我们通过几个例子来说明 jq 的功能:
一、输出格式化,漂亮的打印效果
如果我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,但是通过 jq 的 .(点)过滤器就可以立马让 JSON 的格式规整起来。
1.用文本编辑器打开后的样子

2.用 jq 显示的结果

复制代码 代码如下:
% jq . soundtag.json

在Shell命令行处理JSON数据的方法
二、快速查询JSON数据
利用 jq 能够以 key 作为关键字来对 JSON 作出快速查询, 例如:
复制代码 代码如下:
% jq .cn soundtag.json

这将仅仅显示 cn 键对应的值。
jq 的键查询也支持链式调用,如:
复制代码 代码如下:
% jq .cn[0].pNum soundtag.json

三、jq的管道操作
熟悉命令行的朋友可能都知道 | (管道)是一个非常强大的 武器。幸运的是,jq 也提供了对管道的支持。
复制代码 代码如下:
% jq '.cn[] | { pNum }' soundTag.json

在这里,我们使用管道过滤并构造出 pNum 对象。
四、总结
如果你需要在命令行下处理 JSON,我强烈推荐 jq。jq 不仅 能够满足一般性的常见需求,更包含运算、内置函数、条件比较、 变量声明、自定函数等强大功能。对此感兴趣的朋友,不妨通过 jq 的官方手册 进行学习。

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • PHP安全之webshell和后门检测
    PHP安全之webshell和后门检测
    基于PHP的应用面临着各种各样的攻击:XSS:对PHP的Web应用而言,跨站脚本是一个易受攻击的点。攻击者可以利用它盗取用户信息。你可以配置Apache,或是写更安全的PHP代码(验证所有用户输入)来防范XSS攻击SQL注入:这是PHP应用中,数据库层的易受攻击点。防范
    02-09
  • 【译】使用 Rust 构建你自己的 Shell
    Build Your Own Shell using Rust 译文原文地址:https://www.joshmcguigan.com/blog/build-your-own-shell-rust/原文作者:Josh Mcguigan译文出自:https://github.com/suhanyujie/article-transfer-rs本文永久链接: https://github.com/suhanyujie/article
    02-09
  • ShellExecute使用详解(DELPHI版)
    有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂,比较少用。 2.WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); 3.ShellExecute不仅可以运行EXE文件,也可以运行已经关联
    02-09
  • shell perl 等
    tail -f xls2csv.sh |perl -pe 's/(csv)/\e[1;31m$1\e[0m/g'数据替换grep -E '_id|PHONE|PROFILE30|PROFILE31|PROFILE32|PROFILE35'LABEL272_VALUE_labelLABEL272_VALUE_label_2统计bug,并根据计数排序$NF最后一列为创建时间 $NF-1为处理人awk -F ","'/^(1|2|
    02-09
  • perl版 Webshell存活检测
    原理:检测url返回状态即可源码: 1 #!c:\\perl\\bin\\perl.exe 2 use warnings; 3 use strict; 4 use LWP::UserAgent; 5 $| = 1; 6 print "---------------------------------------------------------\n"; 7 print "|Webshell online check v1.0 |\n"; 8 pri
    02-09
  • shell执行lua脚本传参数 shell脚本执行时传入参
    #lua test.lua 2 5arg[0]= test.lua arg[1]= 2arg[2]= 5if arg[1] and arg[1] == "2" then  print("arg[1]=2")end 
    02-09
  • lua调用shell 脚本
    Lua中,os.execute可以执行dos命令,但是返回的是系统状态码,默认输出。io.popen()也可以执行dos命令,但是返回一个文件。eg:复制代码 代码如下:local t = io.popen('svn help')local a = t:read("*all")--a返回一个字符串,内容是svn help的内容如果想执
    02-09
  • 脚本语言语言脚本语言:Shell , JavaScript、VBS
    今天一直在研究脚本语言语言之类的问题,上午正好有机会和大家共享一下.     脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua                  工作控制语言和shell    Shell 脚本    此类脚本用于自动
    02-09
  • VB.net shell、IO.File.Open、Process.Start、S
      打开文件还有很多方法,但我了解到运用较多的是上面几种- -,为了防止以后忘记,先把了解到的写下来。1、Shell  这个看了很多网页,最靠谱的运用方法:Shell("cmd.exe /c "Br_PathLocal) ' 一般用shell调用cmd命令来打开文件但问题是,命令窗口关不了- -
    02-09
  • vb6.0的各种SHELL,CMD内部命令、外部命令、SHEL
    1 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long
    02-09
点击排行