我在YAML配置文件中遇到问题:
致命错误:解析块映射时;预期<块结束>,但找到了块条目
虽然有很多在线YAML验证器,我已经尝试并帮助过,但我想从命令行验证我的YAML文件并将其集成到我的持续集成管道中。
如何在命令行上验证YAML文件的语法?
答案 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。一次设置成本对我来说非常好。