我有几百个分类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'
“兰花k的”
$ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jq '.[] | ."no rank".name'
“环境样本”
您可以使用level
属性值作为键:
$ curl -s http://taxonomy.jgi-psf.org/tax/tax_id/48479 | jq '.[] | .["\(.level)"].name'
"environmental samples"
如果你愿意,这里有一个替代解决方案:使用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
通过存储在命名空间中的标记(标签)找到一个JSON元素,如val
[name]
从找到的JSON对象中选择name
记录