`jq` में डिबग करने का तरीका

`debug` फंक्शन इस्तेमाल करने के कुछ सुझाव।


jq के साथ एक काम का debug फिल्टर आता है। अपने अभ्यासों के हल लिखते समय jq पाइपलाइन में मौजूद डेटा देखने के लिए इसका इस्तेमाल कीजिए।

debug stderr पर एक "डीबग ऐरे" प्रिंट करता है। यह इनपुट को जैसा है वैसा ही आउटपुट करता है। ऐरे का पहला एलिमेंट "DEBUG:" स्ट्रिंग होता है। दूसरा एलिमेंट इस बात पर निर्भर करता है कि आप debug को कैसे कॉल करते हैं।

  1. शून्य-आर्गुमेंट वाला debug फंक्शन इनपुट का एक संक्षिप्त रूप डीबग ऐरे में रखता है:

    jq -n '[11, 22, 33] | debug | map(. * 2)'
    

    तो यह आउटपुट देता है:

     ["DEBUG:",[11,22,33]]
     [
       22,
       44,
       66
     ]
    
  2. एक-आर्गुमेंट वाला रूप इनपुट को दिए गए फिल्टर से गुज़ारता है:

    jq -n '[11, 22, 33] | debug("length: \(length), last: \(.[-1])") | map(. * 2)'
    
     ["DEBUG:","length: 3, last: 33"]
     [
       22,
       44,
       66
     ]
    

    फिल्टर का स्ट्रिंग होना ज़रूरी नहीं है। यह कुछ भी हो सकता है, जिनमें कॉमा से अलग किए गए कई एक्सप्रेशन भी शामिल हैं, जो "कई लाइनों वाला" डीबग आउटपुट देते हैं:

    jq -n '[11, 22, 33] as $a | 44 | debug("I am here:", $a, .)'
    
    ["DEBUG:","I am here:"]
    ["DEBUG:",[11,22,33]]
    ["DEBUG:",44]
    44