كيفية تصحيح الأخطاء في `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