yq 在结果中省略文档分隔符 (---)

yq omit document dividers (---) in result

在yq 4.11.2中,如果我这样做:

echo '---\nfoo: foo\n---\nfoo: foo\n' | yq eval '.foo' -

我明白了:

foo
---
foo

仅使用 yq(不使用 grep、awk 等),我怎样才能删除 --- 来得到这个?

foo
foo

您的 echo 调用存在问题,默认情况下它不会扩展文字换行符,除非您 运行 使用 echo -e 或启用 xpg_echo shell 选项,如果您 运行 在 bash/zsh

上使用此选项

mikefarah/yq 实现有一个模式 -N 打印没有文档分隔符的过滤器输出见 yq --help 在版本 4.13.3

上测试时
echo -e '---\nfoo: foo\n---\nfoo: foo\n' | yq -N e '.foo' -
foo
foo