रोज़ काम में आने वाले jq फ़िल्टर, काम के अनुसार समूहों में: किसी वैल्यू तक पहुँचना, फ़िल्टर करना और चुनना, कलेक्शन पर काम करना, वैल्यू और स्ट्रिंग बदलना, नए ऑब्जेक्ट या ऐरे में दोबारा आकार देना, पाथ उसी जगह अपडेट करना, लॉजिक पर ब्रांच करना और एडवांस्ड रिडक्शन संभालना, साथ ही वे कमांड-लाइन फ़्लैग जो इनपुट और आउटपुट का आकार तय करते हैं। हर पंक्ति फ़िल्टर को उसके परिणाम के साथ जोड़ती है।
jq एक फ़िल्टर है: यह stdin से JSON पढ़ता है, पाइप से अलग किए गए एक्सप्रेशन की पाइपलाइन चलाता है, और stdout पर JSON लिखता है। डॉट मौजूदा वैल्यू है; सब कुछ उसी पर बनता है। सीखने का सबसे तेज़ तरीका है नीचे दी गई रेसिपी में असली डेटा पाइप करके आउटपुट देखना। इन्हें jq 'filter' file.json या curl ... | jq 'filter' की तरह चलाएँ।
संदर्भ तालिका · 65 प्रविष्टियाँ
jq रेसिपीExplained
65 of 65 rows
पहुँच
पूरा इनपुट, सुंदर ढंग से छपा हुआ।
किसी की का वैल्यू, या नेस्टेड कीज़ का।
ऐसे की का वैल्यू जिसके नाम में स्पेशल कैरेक्टर हैं।
ऐरे का पहला एलिमेंट (नेगेटिव अंत से गिनता है)।
ऐरे का हर एलिमेंट, या ऑब्जेक्ट की हर वैल्यू, अपनी अलग लाइन पर।
की का वैल्यू, या null — की गायब होने पर भी कोई एरर नहीं।
फ़िल्टर और चयन
cond सही होने पर इनपुट जस का तस, वरना कुछ नहीं।
ऐरे के हर एलिमेंट पर expr लगाकर नतीजों को इकट्ठा करता है।
ऑब्जेक्ट की सॉर्ट की गई की-नामों की, या वैल्यू की, ऐरे के रूप में।
ऐरे या स्ट्रिंग की लंबाई, या ऑब्जेक्ट में कीज़ की गिनती।
सिर्फ़ वे एलिमेंट जिनकी उम्र 18 से ज़्यादा है, एक ऐरे के रूप में।
कलेक्शन
सही जब कम से कम एक, या जब हर, एलिमेंट truthy हो या फ़िल्टर पास करे।
सही जब की k ऑब्जेक्ट में मौजूद हो; in वही जाँच की की तरफ़ से चलाता है।
पहला एलिमेंट, आख़िरी, या f के सिर्फ़ पहले n आउटपुट।
ऐरे की सबसे छोटी, या सबसे बड़ी, वैल्यू।
0 से n तक के नंबर, हर एक अपने आउटपुट के रूप में।
नेस्टेड ऐरे जो एक ही फ़्लैट ऐरे में समा जाते हैं।
सही जब x इनपुट में कहीं भी मिले; inside भूमिकाएँ उलट देता है।
हर वैल्यू पर नीचे से ऊपर f लगाता है, फिर पूरा इनपुट दोबारा बनाता है।
ट्रांसफ़ॉर्म
हर एलिमेंट के सिर्फ़ price फ़ील्ड की ऐरे।
नंबरों की ऐरे का योग, या ऑब्जेक्ट की ऐरे का मर्ज।
किसी वैल्यू को स्ट्रिंग में, या न्यूमेरिक स्ट्रिंग को नंबर में बदलता है।
इनपुट को JSON स्ट्रिंग या base64 के रूप में एनकोड करता है।
स्ट्रिंग लोअरकेस में।
स्ट्रिंग
ऐसी स्ट्रिंग जिसमें expr की वैल्यू टेक्स्ट में जुड़ जाती है।
पैटर्न की हर, या सिर्फ़ पहली, मैच को s से बदलता है।
स्ट्रिंग को सेपरेटर पर ऐरे में तोड़ता है, या ऐरे को एक स्ट्रिंग में जोड़ता है।
स्ट्रिंग को पैटर्न से टेस्ट करता है, या मैच और नाम वाले कैप्चर निकालता है।
प्रीफ़िक्स, या सफ़िक्स, को सिर्फ़ तब हटाता है जब वह मौजूद हो।
सही या ग़लत: स्ट्रिंग s से शुरू, या ख़त्म, होती है।
स्ट्रिंग अपरकेस में।
ऐरे जो CSV पंक्ति, TSV पंक्ति, या कोटेड शेल आर्ग्युमेंट के रूप में एनकोड है।
नया आकार देना
नया ऑब्जेक्ट जिसमें इनपुट के सिर्फ़ id और name फ़ील्ड हों।
हर आइटम के नाम की ऐरे।
ऑब्जेक्ट से बनी {key, value} ऑब्जेक्ट की ऐरे।
{key, value} ऑब्जेक्ट की ऐरे से बना ऑब्जेक्ट।
एलिमेंट अपने cat फ़ील्ड के अनुसार सब-ऐरे में बँट जाते हैं।
किसी फ़ील्ड से सॉर्ट करता है, या हर अलग id के लिए एक एलिमेंट रखता है।
अपडेट और पाथ
की की वैल्यू पर f चलाकर उसे अपडेट करता है।
की की वैल्यू को v से बदल देता है।
count की वैल्यू में n जोड़ता है, उसी जगह।
ऐरे के रूप में दिए गए पाथ पर वैल्यू पढ़ता, लिखता या मिटाता है।
नियंत्रण और लॉजिक
c सही होने पर a, वरना b — ज़्यादा ब्रांच के लिए elif।
f चलाता है, और f फेल होने पर एरर मैसेज के साथ g चलाता है।
msg लेकर एरर के साथ रुक जाता है, जब तक कोई try उसे पकड़ न ले।
कोई आउटपुट ही नहीं; वह ब्रांच नतीजों से बस गायब हो जाता है।
true और false वैल्यू को जोड़ता है, या किसी एक को उलटता है।
एडवांस्ड
पूरे ऐरे को एक चलते हुए कुल में तह कर देता है।
reduce जैसा, पर हर स्टेप के बाद स्टेट निकालता है, सिर्फ़ आख़िरी को नहीं।
अगला इनपुट, या बचा हुआ सारा इनपुट, फ़िल्टर के बीच में खींचता है।
वैल्यू उसके JSON टेक्स्ट के रूप में, या JSON टेक्स्ट वापस वैल्यू के रूप में पार्स।
base64 टेक्स्ट को वापस असली स्ट्रिंग में डिकोड करता है।
स्ट्रक्चर की गहराई में असाइनमेंट, रास्ते में गायब लेवल बनाता हुआ।
a अगर वह null या false नहीं है, वरना b (डिफ़ॉल्ट वैल्यू)।
इनपुट, जिसमें से एक की हटाई गई है।
इनपुट का हर पाथ कीज़ की ऐरे के रूप में, ऊपर से नीचे।
वेरिएबल और CLI
$name को शेल स्ट्रिंग के रूप में परिभाषित करता है, फ़िल्टर के अंदर उपयोग के लिए।
$name को रॉ JSON से परिभाषित करता है — नंबर, बूलियन, ऐरे या ऑब्जेक्ट के लिए।
$name को JSON फ़ाइल के पूरे कंटेंट के रूप में परिभाषित करता है।
स्ट्रिंग नतीजे रॉ छापता है, बिना कोट या एस्केप के।
हर नतीजा एक लाइन पर कॉम्पैक्ट छापता है, बिना इंडेंटेशन के।
फ़िल्टर को null पर एक बार चलाता है, कुछ भी नहीं से आउटपुट बनाने के लिए।
फ़िल्टर चलने से पहले पूरा इनपुट एक ऐरे में पढ़ता है।
आख़िरी आउटपुट से एग्जिट कोड सेट करता है, ताकि शेल स्क्रिप्ट नतीजा टेस्ट कर सकें।
एनवायरनमेंट वेरिएबल की वैल्यू, फ़िल्टर के अंदर पढ़ी गई।