当前位置: 首页 > news >正文

x-cmd pkg | yq - 命令行 YAML处理工具

目录

    • 简介
    • 首次用户
    • 支持格式转换
    • 友好的显示和操作
    • 语法与 jq 类似
    • 竞品和相关作品
    • 进一步阅读

简介

yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器,主要用于查询和提取 YAML 数据。
yq 的包来自 mikefarah/yq 项目,语法类似于 jq 。相比 kislyuk/yq ,它不依赖 jq,能处理多种数据格式,包括 YAML、JSON、XML、Properties、CSV 和 TSV。

首次用户

  1. 使用 x yq 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 yq 命令常用功能的 demo 示例,可以帮你快速上手 yq 。

  3. 使用案例:

    yq-1min-cn

    # 格式化输出 YAML 数据
    x yq '.' file.yml
    x ascii --yml | x yq '.'# 从 YAML 数据中获取 "Description" 属性的值
    x ascii --yml | x yq '.[1].Description'# 修改 YAML 中 "Description" 属性的值
    x ascii --yml | x yq '.[1].Description = "x-cmd" | .[1]'# 将前 5 个 ascii 码的 "Oct" 属性值加 1
    x ascii --yml | x yq '(.[] | select(.Dec <5)|.Oct + 1)'# 检测 JSON 中是否含有 `Description` 属性
    x ascii --json | x yq '.[1] | has("Description")'# 将 YAML 转化为 JSON 格式
    x ascii --yml | x yq -o json
    

支持格式转换

yq 可以把 YAML 数据转为 JSON,ndJSON,CSV 和 TSV 的数据格式;也可以与 XML 数据互相转换。

友好的显示和操作

  1. 提供通用 shell (bash/zsh/fish/powershell) 的补全脚本,可以帮您在使用 yq 命令时自动补全参数和选项。
  2. 可以输出彩色化的 YAML,并保留 YAML 的格式、注释、样式、标签、锚点和别名。
  3. 可以用于自动化流水线的 GitHub Action

语法与 jq 类似

  1. 支持深层次的数据结构:可以使用类似于 jq 的语法来访问和修改 YAML、JSON 和 XML 数据中的任意深度的元素。
  2. 可以查询、修改、合并、排序、编码/解码、加载和计算 YAML、JSON 和 XML 数据,能解析和格式化日期和时间,支持不同时区。

竞品和相关作品

  1. kislyuk/yq

  2. jq:轻量级的 JSON 处理工具,由 Stephen Dolan 于 2012 年使用 C 语言开发。yq 的很大一部分灵感就来源于 jq.

  3. dasel:一个支持众多格式(JSON,CSV,YAML,XML)的命令行方案,我们认为其功能稍逊于 jq,但胜在简单易用,能胜任大多数场景。

进一步阅读

  • jq 源代码 - jq 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 jq 和参与社区贡献。
  • Getting started: jq - 官方提供的 jq 快速上手文档。
  • My Cheatsheet for the “yq” Tool - 其中讲解了如何使用 yq 解析 Kubernetes YAML 文件
  • yq : Mastering YAML Processing in Command Line - 其中讲解了如何使用命令行更有效地解析和操作 YAML 文件

相关文章:

  • 三国游戏(第十四届蓝桥杯)
  • ros2学习笔记-CLI工具,记录命令对应操作。
  • 杭州城市开发者年会——CMeet系列技术生态沙龙
  • 【unity学习笔记】语音驱动blendershape
  • ctfshow反序列化(web254-web266)
  • 响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-6 fieldset
  • HarmonyOS4.0系列——07、自定义组件的生命周期、路由以及路由传参
  • Spring:StopWatch
  • 用ChatGPT从英文文本中批量提取特定单词
  • 【OCR项目】之用HALCON的深度学习工具进行文字识别,并导出到C++调用
  • USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块
  • Android13预装APP到data分区
  • PDF有编辑密码怎么办
  • postman使用-07变量
  • R2DBC-响应式数据库
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 2017前端实习生面试总结
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript的使用你知道几种?(上)
  • Markdown 语法简单说明
  • ubuntu 下nginx安装 并支持https协议
  • 小程序01:wepy框架整合iview webapp UI
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #etcd#安装时出错
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (SpringBoot)第七章:SpringBoot日志文件
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (八)c52学习之旅-中断实验
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (六)c52学习之旅-独立按键
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一) springboot详细介绍
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)负载均衡,回话保持,cookie
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • (状压dp)uva 10817 Headmaster's Headache
  • . Flume面试题
  • .bat批处理(六):替换字符串中匹配的子串
  • .bat批处理(一):@echo off
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .Net的DataSet直接与SQL2005交互
  • .NET与 java通用的3DES加密解密方法
  • ::前边啥也没有
  • :“Failed to access IIS metabase”解决方法
  • @Autowired @Resource @Qualifier的区别
  • @Autowired 与@Resource的区别
  • @Valid和@NotNull字段校验使用
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?