unix 如何使用yq对数组进行混洗

fnvucqvd  于 2023-01-08  发布在  Unix
关注(0)|答案(1)|浏览(174)

有文档解释了如何使用yq https://mikefarah.gitbook.io/yq/operators/sort对数组进行排序
但它想 Shuffle (随机排序)
举个例子

  • a:香蕉
  • a:猫
  • a:苹果

我想对它进行随机排序yq 'sort_by(RANDOM)' sample.yml
有什么想法吗?
我试过官方文档https://mikefarah.gitbook.io/yq/operators/sort中的示例

kcwpcxri

kcwpcxri1#

不幸的是,yq不提供shuffle命令。
在处理your github issue之前,可以使用bash内置shuf
1.导出Bash变量,yq的输出通过管道传输到shuf
1.使用yqenv将bash变量插入到所需位置

export shuffled=$(yq e '.MyData' input | shuf)
yq e '.MyData |= env(shuffled)' input

将输出MyData数组的伪随机顺序

相关问题