如何在YAML文件顶部删除“---”?

29

我正在使用Ruby修改一个YAML文件。在我将修改后的YAML写回文件后,我看到文件顶部添加了---。这是如何添加的?我该如何去掉它?


展示一些代码可能会有所帮助。 - Raj
1个回答

37

YAML规范指出:

YAML使用三个破折号(“---”)将指令与文档内容分开。如果没有指令,这也表示文档的开始。

例如:

# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey

# Team ranking
---
- Chicago Cubs
- St Louis Cardinals

如果您在一个YAML文件中有多个文档,那么您需要用三条破折号将它们分开。如果只有一个文档,可以删除/省略它(如果缺少三个破折号,在Ruby中使用YAML时我从未遇到过问题)。当您将对象转化为YAML格式时,为什么会添加三个破折号呢?我想是因为转储器是按照规范编写的,并且不关心实现这样的“快捷方式”(当只有一个文档时省略三个破折号)。


我只有一个文档,每次修改文件时如何将其删除。 - Ava
6
你可以使用 yaml.gsub("---\n", '') 进行替换。 - Sergio Tulentsev
gsub是字符串的一个方法。获取undefined method `gsub' for #<Hash - Ava
@Ava:好的,执行hash.to_yaml.gsub(...) - Sergio Tulentsev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接