yq v4 - env 运算符返回 Errno::E2BIG:参数列表太长
yq v4 - env operator returning Errno::E2BIG: Argument list too long
从 yq 版本 2 迁移到版本 4 时,我们必须更新一些命令,这些命令以前通过以下方式将一行从一个文件复制到另一个文件:
yq w -i -s file_to_read_from.yml file_to_write_to.yaml
更新后,我们最终使用:
v='cat_contents_of_read_file_yaml' yq e -i '.path_to.key = env(v)' file_to_write_to.yaml
之前写入文件时,我们要写入的值约为 220k。它之前适用于 v2,但在按照 yq v4 文档中的迁移指南进行操作后,这就是我们现在收到的错误。很高兴收到关于不同方法的任何建议,因为我是 yq 的新手,并且正在尝试理解别人很久以前做过的工作。
错误 E2BIG 可能是因为您超出了系统上配置的最大支持参数大小。当您调用 env()
来读取那么大的变量的内容时,就会发生这种情况。
最新版本的yq(>= 4.15.1) support load()
operator to slurp in the contents of a file to be updated in an another file. From the docs page, Replace node with referenced file
v='path_to_read_file.yaml' yq e '.path_to.key = load(strenv(v))' file_to_write_to.yaml
当您测试更改以按预期工作时添加 -i
标志
从 yq 版本 2 迁移到版本 4 时,我们必须更新一些命令,这些命令以前通过以下方式将一行从一个文件复制到另一个文件:
yq w -i -s file_to_read_from.yml file_to_write_to.yaml
更新后,我们最终使用:
v='cat_contents_of_read_file_yaml' yq e -i '.path_to.key = env(v)' file_to_write_to.yaml
之前写入文件时,我们要写入的值约为 220k。它之前适用于 v2,但在按照 yq v4 文档中的迁移指南进行操作后,这就是我们现在收到的错误。很高兴收到关于不同方法的任何建议,因为我是 yq 的新手,并且正在尝试理解别人很久以前做过的工作。
错误 E2BIG 可能是因为您超出了系统上配置的最大支持参数大小。当您调用 env()
来读取那么大的变量的内容时,就会发生这种情况。
最新版本的yq(>= 4.15.1) support load()
operator to slurp in the contents of a file to be updated in an another file. From the docs page, Replace node with referenced file
v='path_to_read_file.yaml' yq e '.path_to.key = load(strenv(v))' file_to_write_to.yaml
当您测试更改以按预期工作时添加 -i
标志