dasel

2025-12-11 0 135

dasel

dasel (数据选择器的缩写)允许您使用选择器字符串查询修改数据结构。

与JQ / YQ相当,但支持JSON,YAML,TOML,XML和CSV,其运行时依赖关系为零。

统治所有人的一种工具

说再见,学习新工具只是为了使用不同的数据格式

无论数据格式如何, dasel都使用标准选择器语法。这意味着,一旦您学习了如何使用dasel ,您就可以立即能够在没有任何其他工具或精力的情况下查询/修改任何受支持的数据类型。

在演示中执行的命令

dasel
echo \'{\”demo\”: \”Integrating with github releases…\”}\’ | dasel -r json \’demo\’

# Fetch dasel releases from github api
curl -L \\
-H \”Accept: application/vnd.github+json\” \\
-H \”X-GitHub-Api-Version: 2022-11-28\” \\
https://api.*git**hub.com/repos/TomWright/dasel/releases > releases.json
less releases.json

# Extract and structure release data by version with download URL\’s by asset name
dasel -f releases.json -w yaml \’all().mapOf(version,tag_name,download,assets.all().mapOf(name,name,url,browser_download_url).merge()).merge()\’ > releases_download.yaml
less releases_download.yaml

# Restructure the above data into CSV format, destructuring into rows.
dasel -f releases_download.yaml -w csv \’all().download.all().mapOf(version,parent(2).version,name,name,url,url).merge()\’ > releases_download.csv
less releases_download.csv

# Fetch the first CSV row and output as JSON
dasel -f releases_download.csv -w json \’first()\’\”>

 # Piping data into dasel
echo \' {\"demo\": \"Integrating with github releases...\"} \' | dasel -r json \' demo \'

# Fetch dasel releases from github api
curl -L \\
    -H \" Accept: application/vnd.github+json \" \\
    -H \" X-GitHub-Api-Version: 2022-11-28 \" \\
    https://api.*git**hub.com/repos/TomWright/dasel/releases > releases.json
less releases.json

# Extract and structure release data by version with download URL\'s by asset name
dasel -f releases.json -w yaml \' all().mapOf(version,tag_name,download,assets.all().mapOf(name,name,url,browser_download_url).merge()).merge() \' > releases_download.yaml
less releases_download.yaml

# Restructure the above data into CSV format, destructuring into rows.
dasel -f releases_download.yaml -w csv \' all().download.all().mapOf(version,parent(2).version,name,name,url,url).merge() \' > releases_download.csv
less releases_download.csv

# Fetch the first CSV row and output as JSON
dasel -f releases_download.csv -w json \' first() \' 

目录

  • dasel
  • 统治所有人的一种工具
  • Quickstart
  • 完成
  • 问题与讨论
  • 特征
  • 目录
  • 文档
  • 操场
  • 基准
  • 预警

Quickstart

dasel可在最新版本中的Homebrew,ASDF,Scoop,Docker,Nix,Nix,Nix,Nix,Nix,Nix,Nix或AS AS汇编的二进制文件上找到。

brew install dasel

您也可以使用以下方式安装开发版本

dasel @master\”>

go install github.com/tomwright/ dasel /v2/cmd/ dasel @master

有关更多信息,请参见安装文档。

选择

dasel -r json \’name\’
\”Tom\”\”>

 echo \' {\"name\": \"Tom\"} \' | dasel -r json \' name \'
\" Tom \"

请参阅选择文档。

将json转换为yaml

dasel -r json -w yaml
name: Tom\”>

 echo \' {\"name\": \"Tom\"} \' | dasel -r json -w yaml
name: Tom

请参阅选择文档。

dasel put -r json -t string -v \’contact@tomwright.me\’ \’email\’
{
\”email\”: \”contact@tomwright.me\”,
\”name\”: \”Tom\”
}\”>

 echo \' {\"name\": \"Tom\"} \' | dasel put -r json -t string -v \' contact@tomwright.me \' \' email \'
{
  \" email \" : \" contact@tomwright.me \" ,
  \" name \" : \" Tom \"
}

请参阅放置文档。

删除

dasel delete -r json \’.email\’
{
\”name\”: \”Tom\”
}\”>

 echo \' {
  \"email\": \"contact@tomwright.me\",
  \"name\": \"Tom\"
} \' | dasel delete -r json \' .email \'
{
  \" name \" : \" Tom \"
}

请参阅删除文档。

完成

如果要使用终端的完成,则可以执行以下操作(在此示例中使用ZSH):

将以下内容添加到~/.zshrc ,然后重新加载您的终端。

dasel
compinit\”>

 export fpath=(~/zsh/site-functions $fpath )
mkdir -p ~ /zsh/site-functions
dasel completion zsh > ~ /zsh/site-functions/_ dasel
compinit

预警

dasel钩子添加到.pre-commit-config.yaml文件

- repo : https://g**ithub*.com/TomWright/dasel
  rev : v1.25.1
  hooks :
    - id : dasel -validate

用于dasel的本机执行,或使用:

  • dasel-使用官方Docker Images执行dasel dasel -validate-docker预先承诺挂钩
  • dasel-使用官方二进制文件执行dasel dasel -validate-bin预加入挂钩

问题与讨论

我启用了有关此存储库的讨论。

我知道在决定问题时应在哪里交流,提出问题或提出功能请求时可能会有一些混乱,因此本节旨在帮助我们对此保持一致。

如果以下情况,请提出一个问题

  • 您找到一个错误。
  • 您有一个功能请求,可以清楚地描述您的请求。

如果:

  • 你有一个问题。
  • 您不确定如何使用dasel实现目标。
  • 您有一个主意,但不太知道您希望它如何工作。
  • 您已经与dasel取得了很酷的成就,并想炫耀它。
  • 还要别的吗!

特征

  • 查询/从结构化数据文件中选择数据。
  • 在结构化数据文件中更新数据。
  • 创建数据文件。
  • 支持多种数据格式/类型。
  • 在数据格式/类型之间转换。
  • 在所有数据格式上使用标准查询/选择器语法。
  • 零运行时依赖关系。
  • 在Linux,Mac和Windows上可用。
  • 可用于您自己的项目进口和使用。
  • 通过Docker运行。
  • 比JQ/YQ快。
  • 预先承诺的钩子。

文档

dasel官方文档可以在dasel Docs.tomwright.me上找到。

操场

您可以使用操场测试dasel命令。

可以在github.com/tomwright/ dasel Playground上找到操场的源代码。

基准

在我的测试中, dasel速度比JQ快3倍,比YQ快15倍。

请参阅基准目录。

随着时间的流逝,观星者

下载源码

通过命令行克隆项目:

git clone https://github.com/TomWright/dasel.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 dasel https://www.zuozi.net/34284.html

react app rewired
上一篇: react app rewired
ArchiSteamFarm
下一篇: ArchiSteamFarm
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务