如何将 YAML 拆分为多个具有正确名称的文件

Mak*_*aus 4 awk yaml

我有一个有效的 YAML:

---
name: first
metadata: a
---
name: second
metadata: b
---
name: third
metadata: c
Run Code Online (Sandbox Code Playgroud)

first.yaml如何使用 files和中second.yaml的单行 AWK 脚本拆分它third.yaml?解决方案需要与任何name.

只需分割文件即可,但我不知道如何添加正确的文件名而不是行号(NR):

awk '/\-\-\-/{f=NR".yaml"}; {print >f}'
Run Code Online (Sandbox Code Playgroud)

PL *_*ent 8

您可以简单地使用该包来做到这一点yq

yq -s '.name' file.yml 
Run Code Online (Sandbox Code Playgroud)