وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

دستور Bash jq

0 15
زمان لازم برای مطالعه: 3 دقیقه


داده های JSON برای اهداف مختلفی استفاده می شود. اما داده های JSON را نمی توان به راحتی با استفاده از فایل JSON خواند bash اسکریپت مانند سایر فایل های معمولی. jq ابزار برای حل این مشکل استفاده می شود. jq فرمان مانند کار می کند sed و بیخیال فرمان، و از یک زبان خاص دامنه برای کار با داده های JSON استفاده می کند. jq یک دستور داخلی نیست. بنابراین، برای استفاده از آن باید این دستور را نصب کنید. چگونه می توانید نصب و اعمال کنید jq دستور خواندن یا دستکاری داده های JSON در این آموزش نشان داده شده است.

نصب jq

برای نصب jq دستور زیر را اجرا کنید روی اوبونتو

$ sudo apt-get نصب کنید jq

دستور Bash jq

خواندن داده های JSON

فرض کنید، شما یک متغیر JSON را با نام اعلام کرده اید JsonData در terminal و اجرا jq دستور با آن متغیر به print محتوای آن متغیر

$ JsonData=”[{“Book”:”PHP 7″}, {“Publication”:”Apress”},
{“Book”:”React 16 Essentials”},{“Publication”:”Packt”} ]”
$ echo “${JsonData}” | jq ‘.’

دستور Bash jqدستور Bash jq

خواندن داده های JSON با گزینه –c

گزینه -c با دستور jq به استفاده می کند print هر شی JSON در هر خط. پس از اجرای دستور زیر، هر شیء از متغیر JsonData چاپ می شود.

$ echo “${JsonData}” | jq -c ‘.[]’

خواندن یک فایل JSON

دستور jq را می توان برای خواندن فایل JSON نیز استفاده کرد. یک فایل JSON با نام Students.json با محتوای زیر ایجاد کنید تا دستورات بعدی این آموزش را آزمایش کنید.

پیشنهاد می‌کنیم بخوانید:  چگونه یک عدد صحیح را از یک متغیر کم کنیم - Bash

Students.json

[
{
“roll”: 3,
“name”: “Micheal”,
“batch”: 29,
“department”: “CSE”
},
{
“roll”: 55,
“name”: “Lisa”,
“batch”: 34,
“department”: “BBA”
},
{
“roll”: 12,
“name”: “John”,
“batch”: 22,
“department”: “English”
}
]

برای خواندن فایل Students.json دستور زیر را اجرا کنید.

$ jq ‘.’ Students.json

دستور Bash jqدستور Bash jq

خواندن فایل JSON با ‘|’

می توانید از ‘|’ استفاده کنید نماد را به روش زیر برای خواندن هر فایل JSON.

$ cat Students.json | jq ‘.’

دستور Bash jqدستور Bash jq

خواندن مقادیر تک کلیدی

با استفاده از آن می توانید به راحتی هر شی خاص را از یک فایل JSON بخوانید jq فرمان که در Students.json، چهار شی وجود دارد. اینها هستند رول، نام، دسته و بخش. اگر می خواهید ارزش آن را بخوانید بخش کلید فقط از هر رکورد و سپس اجرا کنید jq به روش زیر دستور دهید

$ jq ‘.[] | .department’ Students.json

دستور Bash jqدستور Bash jq

خواندن چند کلید

اگر می خواهید دو یا چند مقدار شی را از داده های JSON بخوانید، نام اشیاء را با جدا کردن کاما (،) در دستور jq ذکر کنید. دستور زیر مقادیر را بازیابی می کند نام و بخش کلیدها

$ jq ‘.[] | .name, .department’ Students.json

دستور Bash jqدستور Bash jq

کلید را از داده های JSON حذف کنید

jq دستور نه تنها برای خواندن داده های JSON بلکه برای نمایش داده ها با حذف کلید خاص استفاده می شود. دستور زیر خواهد بود print تمام مقادیر کلیدی Students.json با حذف فایل دسته ای کلید نقشه و دل تابع در استفاده می شود jq دستور انجام کار

$ jq ‘map(del(.batch))’ Students.json

دستور Bash jqدستور Bash jq

ارزش های نقشه برداری

بدون حذف کلید از داده های JSON، می توانید از تابع نقشه با دستور jq برای اهداف مختلف استفاده کنید. مقادیر عددی داده های JSON را می توان با عملکرد نقشه افزایش یا کاهش داد. یک فایل JSON با نام ایجاد کنید Number.json با محتوای زیر برای تست دستورات بعدی.

[ 40,34,12,67,45]

دستور زیر را اجرا کنید تا با هر مقدار شی 10 عدد اضافه کنید اعداد، json.

$ jq ‘map(.+10)’ Numbers.json

دستور Bash jqدستور Bash jq

دستور زیر را برای کم کردن 10 از مقدار هر شیء اجرا کنید اعداد، json.

$ jq ‘map(.-10)’ Numbers.json

دستور Bash jqدستور Bash jq

جستجوی مقادیر بر اساس شاخص و طول

شما می توانید اشیاء را از فایل JSON با تعیین شاخص و طول خاص بخوانید. یک فایل JSON با نام ایجاد کنید colors.json با داده های زیر

[“Red”,”Green”,”Blue”,”Yellow”,”Purple”]

دستور زیر را برای خواندن دو مقدار که از فهرست سوم فایل Colors.json شروع می‌شود، اجرا کنید.

$ jq ‘.[2:4]’colors.json

دستور Bash jqدستور Bash jq

می توانید طول یا شاخص شروع را برای خواندن داده ها از فایل JSON مشخص کنید. در مثال زیر، فقط تعداد مقدار داده داده شده است. در این حالت، دستور چهار داده را از اولین فهرست رنگها.json می خواند.

$ jq ‘.[:4]’colors.json

دستور Bash jqدستور Bash jq

شما می توانید نقطه شروع را فقط بدون هیچ مقدار طول مشخص کنید jq دستور و مقدار می تواند مثبت یا منفی باشد. اگر نقطه شروع مثبت باشد، شاخص از سمت چپ لیست و از صفر شروع می شود. اگر نقطه شروع منفی باشد، شاخص از سمت راست لیست و از یک شروع می شود. در مثال زیر نقطه شروع 3- است. بنابراین، سه مقدار آخر از داده ها نمایش داده می شود.

$ jq ‘.[-3:]’colors.json

دستور Bash jqدستور Bash jq

هنگامی که با داده های JSON کار می کنید و می خواهید داده ها را مطابق با نیاز خود تجزیه یا دستکاری کنید، دستور jq به شما کمک می کند تا کار خود را آسان تر کنید.

پیشنهاد می‌کنیم بخوانید:  چگونه طول آرایه را در Bash پیدا کنیم
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-01-01 00:56:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید