linux - 如何将yaml文件拆分成多个文件?

标签 linux yaml yaml-cpp

我有一个很大的 (~2Gb) yaml 文件。我使用 yaml-cpp 库和 YAML::Loadfile 函数。但我有一个内存不足的问题。

将这个文件分成几个小文件的最简单方法是什么,每个小文件都是一个有效的 yaml 文件(可能是通过 linux 的功能)?

最佳答案

如果您的文件中有多个文档,那么您可以在行首的 --- 处拆分。

如果你没有多个文档(或者如果你有多个文档,但它们仍然太大),你的文档要么在顶层有映射,要么有一个序列(理论上你也可以有一个多行标量,但这不太可能)。

如果您的文档的顶层具有流样式(使用 { } 进行映射,使用 [ ] 进行排序),那么事情很大程度上取决于布局。但是,如果它具有 block 样式,那么您可以轻松找到顶级映射的各个键或序列的元素。它们都具有与第一个元素相同的缩进(很可能是零缩进)。

根据上述信息拆分您的 YAML 文档并单独处理每个元素。

关于linux - 如何将yaml文件拆分成多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43051295/

相关文章:

linux - 为什么 execve 调用在启用 SELinux 的情况下失败?

python - 在python中禁用yaml文件的别名

c++ - "Illegal block entry"以及 yaml-cpp 中的 YAML 怪物示例

arrays - strb w1, [x22,x23] 当x23达到一定值时导致的段错误

linux - 获取 sed 以用参数替换文本

amazon-web-services - 取决于 cloudforamtion yml 模板中的 if else 语句

java - 来自配置 yaml 的绑定(bind)映射

C++ 引用不一致

c++ - 数据结构与 yaml-cpp 接口(interface)的设计技巧?

linux用C编程,子进程可以等待父进程终止吗?