我得到多個路徑陣列包含以下關鍵字“標題”:
jq -c 'paths | select(.[-1] == "headline")' nytimeseuro.json
["data","legacyCollection","collectionsPage","stream","edges",0,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",1,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",2,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",3,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",4,"node","headline"]
["data","legacyCollection","headline"]
我可以根據陣列索引選擇它們嗎?像 Output[0:2] 只選擇
["data","legacyCollection","collectionsPage","stream","edges",0,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",1,"node","headline"]
["data","legacyCollection","collectionsPage","stream","edges",2,"node","headline"]
或 Output[-1] 只選擇
["data","legacyCollection","headline"]
我嘗試了下面的命令,但這似乎不是我想要的,它只是分割了我得到的每條路徑,而不是選擇回傳的所有路徑的子集:
jq -c 'paths | select(.[-1] == "headline")[:3]' nytimeseuro.json
["data","legacyCollection","collectionsPage"]
["data","legacyCollection","collectionsPage"]
["data","legacyCollection","collectionsPage"]
["data","legacyCollection","collectionsPage"]
["data","legacyCollection","collectionsPage"]
["data","legacyCollection","headline"]
uj5u.com熱心網友回復:
paths生成一個流,而您顯然需要一個陣列,您可以從中輕松提取感興趣的專案。例如:
[paths | select(.[-1] == "headline")][0:2]
面向流的替代方案也可用,例如 limit(2; paths ....)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/469186.html
上一篇:在兩個常量字串之間提取WORD
下一篇:使用sed提取路徑值子字串
