我有数百个分类ID,我正在使用curl
和jq
从http://taxonomy.jgi-psf.org/tax/accession中提取相关值。
是否有一种方法可以将jq传递给自身,以便可以将“ level”的值用作另一个查询的键?
对于此示例,我想将这两个命令组合为一个:
$ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jq '.[] | .level'
“无排名”
$ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jq '.[] | ."no rank".name'
“环境样本”
答案 0 :(得分:2)
您可以将level
属性值用作键:
$ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jq '.[] | .["\(.level)"].name'
"environmental samples"
答案 1 :(得分:0)
如果愿意,这是您要问的另一种解决方案:使用 jtc
unix实用程序:
bash $ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jtc -w'<level>l<val>v[^0]<val>t[name]'
"environmental samples"
bash $
分解步行路径(-w)
<level>l
通过标签level
查找JSON元素<val>v
-在名称空间中以val
的名称存储发现的值(可以是任何值)[^0]
将搜索路径重置回JSON根<val>t
通过以val
存储在名称空间中的标签(标签)查找JSON元素[name]
从找到的JSON对象中选择name
记录