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

2024-01-21 19:12

本文主要是介绍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 文件

这篇关于x-cmd pkg | yq - 命令行 YAML处理工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/630550

相关文章

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

一文详解Python中数据清洗与处理的常用方法

《一文详解Python中数据清洗与处理的常用方法》在数据处理与分析过程中,缺失值、重复值、异常值等问题是常见的挑战,本文总结了多种数据清洗与处理方法,文中的示例代码简洁易懂,有需要的小伙伴可以参考下... 目录缺失值处理重复值处理异常值处理数据类型转换文本清洗数据分组统计数据分箱数据标准化在数据处理与分析过

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req