`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