Linux笔记之命令行JSON处理器jq

Linux笔记之命令行JSON处理器jq

code review!

文章目录

  • Linux笔记之命令行JSON处理器jq
    • 1.安装
    • 2.jq 基本用法
    • 3.例程
      • 3.1. 示例JSON文件
      • 3.2. 读取特定字段
      • 3.3. 管道过滤器(Pipe Filters)
      • 3.4. 映射过滤器(Map Filters)
      • 3.5. 条件过滤器
      • 3.6. 将输出格式化为字符串
      • 3.7. 整合到Shell脚本中

1.安装

sudo apt-get install jq

2.jq 基本用法

jq 的基本语法是:

jq 'filter' file.json

其中 filter 是您用来提取或处理JSON文件中数据的表达式。

3.例程

在这里插入图片描述

3.1. 示例JSON文件

让我们创建一个简单的JSON文件 data.json

{"name": "John","age": 30,"children": [{"name": "Alice", "age": 10},{"name": "Bob", "age": 7}]
}

3.2. 读取特定字段

提取上面JSON文件中的 name 字段:

jq '.name' data.json

输出将是:

"John"

3.3. 管道过滤器(Pipe Filters)

您可以使用管道 | 来连接多个操作,例如获取第一个孩子的名字:

jq '.children[0].name' data.json

输出将是:

"Alice"

3.4. 映射过滤器(Map Filters)

如果您想要获取所有孩子的名字,可以使用 map 函数:

jq '.children | map(.name)' data.json

输出将是一个JSON数组:

["Alice", "Bob"]

3.5. 条件过滤器

使用选择器 select 来找到年龄大于8岁的孩子:

jq '.children[] | select(.age > 8) | .name' data.json

输出将是:

"Alice"

3.6. 将输出格式化为字符串

如果您不希望输出带有引号,可以使用 -r 参数(即 raw output):

jq -r '.name' data.json

输出将是:

John

3.7. 整合到Shell脚本中

现在让我们将这些命令整合到一个简单的Shell脚本中,以自动化一些任务:

#!/bin/bash# 读取JSON文件
FILE="data.json"# 输出所有孩子的名字
echo "Children's names:"
jq -r '.children | map(.name) | join(", ")' $FILE# 查找年龄大于8岁的孩子
echo "Children older than 8:"
jq -r '.children[] | select(.age > 8) | .name' $FILE

保存这个脚本为 process_json.sh,然后给它执行权限并运行:

chmod +x process_json.sh
./process_json.sh

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/14723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短视频都是怎么剪的:四川京之华锦信息技术公司

短视频都是怎么剪的 随着移动互联网的迅猛发展,短视频已成为人们日常生活中不可或缺的一部分。无论是记录生活的点滴,还是展示个人才艺,短视频都以其短小精悍、直观生动的特点,吸引了众多用户的关注。四川京之华锦信息技术公司那…

自动化重置数据库功能的探索与实践

1、简介 在现代软件开发中,尤其是涉及到数据驱动的应用程序时,开发和测试环境中数据库的管理是至关重要的一环。为了确保开发和测试环境中的数据库始终处于一致的状态,自动化重置数据库成为了一种常见的实践。本文旨在介绍如何通过Shell脚本…

内网(极空间)搭建gitlab跳板机转发端口及域名配置

背景说明 https://blog.csdn.net/GodDavide/article/details/139182475 上文说到: 我已经用docker搭好了gitlab-ce服务,但我是部署在自己的家庭nas-极空间z4pro里的,属于内网环境。 另外我有一台阿里云服务器,做跳板机。 我有一个阿里的域名…

老Java学 Go 笔录(二) 从 go 的编译开始学起

目录 一.版本选择二.环境准备三.工具的选择四.第一个 hello go4.1 开发4.2 编译4.3 编译运行4.4 直接安装 五.用 go 快速搭建 webserver六.调用外部三方方法七.go vs java 的执行 前言 专栏旨在利用现有的 java 体系内容去完成 go 语言的学习. 本次行文是在 https://go.dev/doc…

C# 标识符、变量的命名规范

标识符: 定义的变量名 方法名 类名 等用于识别的内容(变量的命名规范) 命名注意事项: 1.不能以数字开头 2.不能有特殊符号(下划线除外) 3.不能有程序关键字 4.不能重复使用一个名字 命名方法(常用): 驼峰命名法 帕斯卡命名法 不建议使用拼音或汉字命名

迈向2024年,投资无人售货机的盈利能力

在科技进步的浪潮下,无人值守自动售货商店已悄然引领了零售业的新风尚。但关于在2024年开设此类商店是否依旧能实现盈利,这需要一番深思熟虑的分析。 首先不可否认,无人售货机拥有多项显著优势。它打破了传统零售的时间与地点局限&#xff0…

[Linux] 进程概念

目录 1.冯诺依曼硬件体系结构 2.操作系统(OS) 3.系统接口 4.进程的概念 5.进程状态 6.四个其他概念 7.环境变量 8.进程地址空间 1.冯诺依曼硬件体系结构 在冯诺依曼体系结构中,计算机是由输入、输出、存储设备和中央处理器cpu组成的。图中体结…

Unity 自定义Web GL 发布模板

前言 使用讯飞语音识别时,发布Web GL 平台后需要在index.html 中添加相应的script 标签,但每次发布完添加比较麻烦,添加一个发布模板就可以不必每次发布完再手动添加修改。 实现 在Assets 文件夹下新建一个文件夹,重命名为WebG…

重构2:重构的原则之笔记

最近在看重构2:改善既有代码的设计这本书,对于代码重构指导非常有帮助,然后也是做个笔记记录下,以下是我阅读本书的前两章的时候整理的思维导图:

【示例】MySQL-4类SQL语言-DQL

文章目录 前言DQL | Data Query Language总述 | 涵盖几乎所有关键字的DQL语句单表查询关键字 | 用在Select后面查询内容:表字段查询内容:聚合函数查询内容:[排序函数] [聚合函数] 窗口函数查询内容:表字段函数 关键字 | 用在Where…

【MySQL精通之路】InnoDB(18)-备份与恢复

目录 1.InnoDB备份 1.1 热备份 1.2 冷备份 1.3 使用mysqldump的逻辑备份 2.InnoDB恢复 2.1 实时恢复 2.2 从数据损坏或磁盘故障中恢复 2.3 InnoDB崩溃恢复 2.3.1 表空间发现 2.3.2 Redolog应用程序 2.3.3 未完成交易的回滚 2.3.4 更改缓冲区合并 2.3.5 清除 2.4 …

GPT-3可以用于哪些行业

GPT-3的应用已经渗透到了多个行业,其广泛的用途和强大的能力使得它成为了各行各业的重要工具。以下是一些GPT-3的主要应用领域: 在线客服:GPT-3可以理解和生成人类语言,使得它能够更好地满足用户的需求。它可以根据用户的提问实时…

数据湖对比(hudi,iceberg,paimon,Delta)

Delta 数据湖 Delta 更新原理 update/delete/merge 实现均基于spark的join功能。 定位 做基于spark做流批一体的数据处理 缺点 本质为批处理。强绑定spark引擎。整体性能相较其他数据湖比较差 hudi 数据湖 hudi 更新原理 通过hudi自定义的主键索引hoodiekey 布隆过…

Ali-Sentinel-集群流控

归档 GitHub: Ali-Sentinel-集群流控 测试 参考:热点流控-测试 新建 ClusterDemoApplication2 public class ClusterDemoApplication2 {public static void main(String[] args) {System.setProperty("csp.sentinel.dashboard.server", "127.0.…

华为手机卡顿(仅针对于部分人来说,我也不清楚是否真的有用)

关机! 之前一段时间手机变得特别卡顿,然后网上搜了一堆教程一点用没有,结果因为昨天下午在考试所以把手机关机了一个多小时,再打开之后手机就变得很流畅,原因不详,但效果显著,如有需要可尝试一…

docker使用PostgreSQL容器

要执行 db/migrations/ 目录下的多个 SQL 文件以迁移数据库,可以按照以下步骤进行: 1 确认 PostgreSQL 容器正在运行: 确认你已经启动了 PostgreSQL 容器并且它在运行: docker ps -a2 确认容器 beaconchain 是 Up 状态。 将 SQ…

docker 挂载运行镜像

文章目录 前言docker 挂载运行镜像1. 作用2. 命令3. 测试 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢…

软考 软件设计师 场景分析题 速成篇

文章目录 试题一:数据流图💖 基本图形元素1. 外部实体2. 数据存储3. 加工4. 数据流 📚 例题(1)实体名称(2)数据存储名称(3)数据流① 父子图平衡② 加工有输入有输出④ 数…

在Windows10中重命名文件和文件夹的6种方法,有你熟悉和不熟悉的

序言 你可以通过多种方式在Windows 10上重命名文件。如果每次你想更改文件名时仍右键单击并选择“重命名”,那么我们有一些技巧可以加快更改速度。 使用文件资源管理器重命名文件和文件夹 Windows 10的文件资源管理器是一个功能强大的工具。你知道吗,有四种不同的方法可以…

电商API接口接入电商平台抓取热门商品推荐上货api接入示例

电商API接口接入电商平台抓取热门商品推荐上货的示例代码如下: # coding:utf-8 """ Compatible for python2.x and python3.x requirement: pip install requests """ from __future__ import print_function import requests # 请求…