使用Go版本yq将JSON数组转为指定格式Markdown的问题
解决Go版yq将JSON数组转指定Markdown格式的问题
针对你的需求,只需调整yq命令,让它逐个遍历数组中的对象,成对输出英文单词的引用行和法语单词的列表行,具体命令如下:
yq -r '.[] | "> " + .en, " - " + .fr' test.json
命令说明:
.[]:遍历JSON数组中的每一个对象元素|:将遍历到的每个对象传递给后续表达式处理"> " + .en:为当前对象的en字段值拼接引用前缀,生成> 单词格式的行", ":分隔两个输出表达式,确保每个对象先输出英文引用行,再输出法语列表行" - " + .fr:为当前对象的fr字段值拼接列表前缀,生成- 单词格式的行
执行该命令后,输出结果将完全符合预期:
> cat - chat > dog - chien > fish - poisson
原命令问题分析:
你之前的命令yq -r '"> " + .[].en, .[].fr' test.json是先一次性输出所有对象的en字段,再一次性输出所有fr字段,导致两类内容完全分开,无法实现英文与法语单词的一一对应。调整后的命令针对每个对象单独处理输出,自然解决了这个问题。
内容的提问来源于stack exchange,提问作者Boyd
相关产品推荐
相关产品推荐

