如何从命令行验证我的YAML文件?

时间:2010-10-19 19:11:33

标签: yaml

我在YAML配置文件中遇到问题:

  

致命错误:解析块映射时;预期<块结束>,但找到了块条目

虽然有很多在线YAML验证器,我已经尝试并帮助过,但我想从命令行验证我的YAML文件并将其集成到我的持续集成管道中。

如何在命令行上验证YAML文件的语法?

6 个答案:

答案 0 :(得分:94)

使用基本的Ruby安装,这应该有效:

ruby -ryaml -e "p YAML.load(STDIN.read)" < data.yaml

Python版本(thx @Murphy):

pip install pyyaml
python -c 'import yaml, sys; print(yaml.safe_load(sys.stdin))' < data.yaml

答案 1 :(得分:15)

鉴于您正在使用的服务器上安装了perl,并且它有一些基本的YAML工具,您可以使用...

perl -MYAML -e 'use YAML;YAML::LoadFile("./file.yaml")'

应该注意的是,这对文件的解释是严格的,但很有用。

答案 2 :(得分:9)

您可以使用yamllint。它可以在Homebrew等版本中使用。它可以用于语法验证以及棉绒。

答案 3 :(得分:6)

要更正.yaml文件,我建议使用工具yamllint。可以从本地控制台轻松启动它。

软件包yamllint适用于所有主要操作系统。

它可以从系统的软件包源安装。 (例如sudo apt-get install yamllint)。 See documentation for quick start and installation.

答案 4 :(得分:1)

如果您的环境中未安装解释器,但仍然有 curl ,则可以使用Lint-Trilogy之类的在线linter项目:

null

它包含验证结果。错误说明(如果有的话)为json或csv,或者在足够的情况下为纯文本 true false

它也可以作为docker文件使用。因此,如果您经常需要基于REST的Linter(也许在CI / CD管道中),则在站点上托管自己的实例可能会很方便。

答案 5 :(得分:-5)

或者交替安装(免费)Eclipse IDE,然后安装YEdit yaml编辑器,并使用语法突出显示,错误标记和大纲视图查看您的yaml。一次设置成本对我来说非常好。