jq का उपयोग करके अभिभावक का चयन करने के लिए jq का उपयोग करना, यदि मैं एक बच्चे ऑब्जेक्ट को दो फ़िल्टर आवश्यकताओं को पूरा करता हूं तो मैं मूल ऑब्जेक्ट का चयन कैसे करूं?बच्चे कुंजी/मूल्य जोड़ी
इस उदाहरण में मैं सभी सबनेट तत्वों का चयन करना चाहता हूं जिनमें कुंजी "नाम" और मूल्य "TheName" वाला बच्चा टैग है। मेरे उदाहरण में दो सबनेट हैं। पहले गलत कुंजी में "TheName" है। दूसरे सबनेट में नाम/मूल्य जोड़ी है जिसे मैं ढूंढ रहा हूं। यानी "Key": "Name", "Value": "TheName"
निम्नलिखित टैग में से किसी एक में निर्दिष्ट मान के साथ एक सबनेट का चयन करता है लेकिन जोड़ी नहीं। यह केवल दूसरे सबनेट की बजाय दोनों सबनेट्स देता है।
jq '.Subnets[] | select(.Tags[].Value=="TheName")' output
मैं केवल उन सबनेट्स का चयन करने के लिए jq का उपयोग कैसे करूं जिनके नाम/मूल्य जोड़ी मैं ढूंढ रहा हूं?
{
"Subnets": [
{
"VpcId": "vpc-12345678",
"SubnetId": "subnet-1234567a",
"Tags": [
{
"Key": "IgnoreThis",
"Value": "TheName"
},
{
"Key": "Name",
"Value": "NotTheName"
}
]
},
{
"VpcId": "vpc-12345678",
"SubnetId": "subnet-1234567b",
"Tags": [
{
"Key": "IgnoreThis",
"Value": "ignore"
},
{
"Key": "Name",
"Value": "TheName"
}
]
}
]
}
वांछित आउटपुट होगा:
{
"VpcId": "vpc-12345678",
"SubnetId": "subnet-1234567b",
"Tags": [
{
"Key": "IgnoreThis",
"Value": "ignore"
},
{
"Key": "Name",
"Value": "TheName"
}
]
}
का उपयोग करता है सबसे अच्छी तरह से लिखा यूनिक्स कमांड, 'jq', एक फ़ाइल नाम तर्क पढ़ सकते हैं ताकि [' cat' बेकार है] (http की तरह है .iki.fi/era/unix/award.html) – tripleee