【发布时间】:2019-01-25 14:43:39
【问题描述】:
我有以下 JSON sn-p:
{
"root_path": "/www",
"core_path": "/www/wp",
"content_path": "/www/content",
"vendor_path": "/www/vendor"
}
我想先使用jq 来获取按长度降序排列的值:
/www/content
/www/vendor
/www/wp
/www
我需要这些,因此我可以匹配文件列表以查找文件存在于哪个命名路径中。
然后我想再次使用jq 来交换值的属性(它可以删除重复的属性,没关系):
{
"/www": "root_path".
"/www/wp": "core_path",
"/www/content": "content_path",
"/www/vendor": "vendor_path"
}
我对第二个查询的用例是能够查找匹配的路径值并找到它的路径名,然后我将在具有相同模式的第二个 JSON sn-p 中使用它来获取命名路径的值。
我的用例是用于网站部署,我有一个包含文件名的配置文件,因为它们将存在于部署服务器上,应该从源服务器复制到部署服务器,但服务器可能有不同的目录布局。
我需要为此使用 Bash,但如果有更好的方法来做我想做的事情,我是开放的。也就是说,我真的很想学习如何更好地使用jq,所以我更愿意学习如何使用jq 来进行这些转换。
我正在使用jq版本1.5
【问题讨论】: