shell 检测从YAML读入的字符串(带有yq)是否为块标量字符串文本

qhhrdooz  于 2023-03-19  发布在  Shell
关注(0)|答案(1)|浏览(119)

假设我们有一个yaml文件example0.yaml,包含:

quotation: |
"The true delight is in finding out rather than in the knowing" I. ASIMOV

以及第二文件example1.yaml,其包含:

quotation: 
   Asimov: |
"The true delight is in finding out rather than in the knowing"

假设我们在YAML中读到:

yaml0="$(cat example0.yaml)"
quotation0="$(echo "$yaml0" | yq )";
yaml1="$(cat example1.yaml)"
quotation1="$(echo "$yaml0" | yq )";

我们如何使用yq和/或shell命令检测quotation0包含块标量文字字符串,而quotation1包含另一个节点?
使用Mike Farrah's yq(v4.31.2),但对Andrey Kislyuk的答案也感兴趣。

kfgdxczn

kfgdxczn1#

你是说.quotationtype吗?

yq '.quotation | type' example0.yaml example1.yaml
!!str
---
!!map
"string"
"object"

相关问题