המסננים של jq שמשתמשים בהם יום־יום, מקובצים לפי משימה: להגיע לערך, לסנן ולבחור, לעבוד עם אוספים, להמיר ערכים ומחרוזות, לעצב מחדש לאובייקט או מערך חדש, לעדכן נתיבים במקום, להסתעף על לוגיקה ולטפל בצמצום מתקדם, וכן דגלי שורת הפקודה שמעצבים קלט ופלט. כל שורה מצמידה את המסנן לתוצאה שהוא מפיק.
jq הוא מסנן: הוא קורא JSON מ־stdin, מריץ צינור של ביטויים מופרדים בפייפים וכותב JSON אל stdout. הנקודה היא הערך הנוכחי; הכול נבנה עליה. הדרך המהירה ביותר ללמוד היא להזרים נתונים אמיתיים דרך המתכונים שלהלן ולצפות בפלט. מריצים אותם כ־jq 'filter' file.json או curl ... | jq 'filter'.
טבלת עיון · 65 ערכים
מתכוני jqExplained
65 of 65 rows
גישה
הקלט כולו, מודפס יפה.
הערך במפתח, או במפתחות מקוננים.
הערך במפתח ששמו מכיל תווים מיוחדים.
האיבר הראשון של מערך (מספר שלילי סופר מהסוף).
כל איבר של מערך, או כל ערך של אובייקט, בשורה משלו.
הערך במפתח, או null, בלי שגיאה כשהמפתח חסר.
סינון ובחירה
הקלט ללא שינוי כש־cond אמת, אחרת כלום.
מפעיל את expr על כל איבר במערך ואוסף את התוצאות.
שמות המפתחות ממוינים, או הערכים, של אובייקט כמערך.
אורך של מערך או מחרוזת, או מספר המפתחות באובייקט.
רק האיברים שגילם גדול מ־18, כמערך אחד.
אוספים
אמת כשלפחות איבר אחד, או כשכל איבר, הוא truthy או עובר מסנן.
אמת כשהמפתח k קיים באובייקט; in מריץ את אותה בדיקה מצד המפתח.
האיבר הראשון, האחרון, או רק n הפלטים הראשונים של f.
הערך הקטן ביותר, או הגדול ביותר, במערך.
המספרים מ־0 עד n, כל אחד כפלט משלו.
מערכים מקוננים שנמעכים למערך אחד שטוח.
אמת כש־x מופיע אי־שם בקלט; inside הופך את התפקידים.
מפעיל את f על כל ערך מלמטה למעלה, ואז בונה מחדש את כל הקלט.
המרה
מערך של שדה price בלבד מכל איבר.
סכום של מערך מספרים, או מיזוג של מערך אובייקטים.
הופך ערך למחרוזת, או מחרוזת מספרית למספר.
מקודד את הקלט כמחרוזת JSON או base64.
מחרוזת באותיות קטנות.
מחרוזות
מחרוזת שערך ה־expr שולב בתוך הטקסט.
מחליף כל התאמה של התבנית, או רק את הראשונה, ב־s.
פיצול מחרוזת למערך לפי מפריד, או הדבקת מערך למחרוזת אחת.
בודק מחרוזת מול תבנית, או מוציא את ההתאמות והקבוצות השמיות.
מסיר קידומת, או סיומת, רק כשהיא קיימת.
אמת או שקר: המחרוזת מתחילה, או מסתיימת, ב־s.
מחרוזת באותיות גדולות.
מערך מקודד כשורת CSV, שורת TSV, או ארגומנטים מצוטטים לשורת הפקודה.
עיצוב מחדש
אובייקט חדש עם שדות id ו־name בלבד מהקלט.
מערך של השם של כל פריט.
מערך של אובייקטי {key, value} מתוך אובייקט.
אובייקט שנבנה ממערך של אובייקטי {key, value}.
איברים מקובצים לתת־מערכים לפי שדה ה־cat שלהם.
ממיין לפי שדה, או שומר איבר אחד לכל id ייחודי.
עדכון ונתיבים
מעדכן את הערך במפתח על ידי הרצת f עליו.
דורס את הערך במפתח ב־v.
מוסיף n לערך ב־count, במקום.
קורא, כותב או מוחק ערכים בנתיבים הניתנים כמערכים.
בקרה ולוגיקה
a כש־c אמת, אחרת b, עם elif לעוד ענפים.
מריץ את f, ומריץ את g עם הודעת השגיאה במקום כש־f נכשל.
עוצר עם שגיאה שנושאת את msg, אלא אם try תופס אותה.
שום פלט כלל; הענף הזה פשוט נעלם מהתוצאות.
משלב ערכי אמת ושקר, או הופך אחד.
מתקדם
מקפל את כל המערך לסכום מצטבר אחד.
כמו reduce, אבל פולט את המצב אחרי כל צעד, לא רק את האחרון.
הקלט הבא, או כל הקלטים שנותרו, שנמשכים באמצע המסנן.
ערך כטקסט JSON שלו, או טקסט JSON שפוענח בחזרה לערך.
טקסט base64 שפוענח בחזרה למחרוזת המקורית.
השמה עמוק במבנה, שיוצרת רמות חסרות בדרך.
a אם הוא לא null או false, אחרת b (ערך ברירת מחדל).
הקלט עם מפתח אחד שהוסר.
כל נתיב בקלט כמערך של מפתחות, מלמעלה למטה.
משתנים ו־CLI
מגדיר את $name כמחרוזת shell, לשימוש בתוך המסנן.
מגדיר את $name מ־JSON גולמי, למספרים, בוליאנים, מערכים או אובייקטים.
מגדיר את $name כתוכן המלא של קובץ JSON.
מדפיס תוצאות מחרוזת גולמיות, בלי מרכאות או תווי בריחה.
מדפיס כל תוצאה בצורה קומפקטית בשורה אחת, בלי הזחה.
מריץ את המסנן פעם אחת על null, כדי לבנות פלט מאפס.
קורא את כל הקלט למערך אחד לפני שהמסנן רץ.
קובע את קוד היציאה לפי הפלט האחרון, כדי שסקריפטים יוכלו לבדוק את התוצאה.