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

سرور مجازی NVMe

چگونه یک فایل YAML را در Bash تجزیه کنم؟

0 16
زمان لازم برای مطالعه: 4 دقیقه


مواردی وجود دارد که لازم است فایلی مانند YAML یا هر فایل دیگری را از داخل اسکریپت های Bash تجزیه کنید. Bash یک مترجم برای زبان فرمان است. در اکثر GNUسیستم های /لینوکس، به عنوان مفسر فرمان پیش فرض ارائه می شود و به طور گسترده در انواع سیستم عامل ها قابل دسترسی است. “Bourne-Again SHell” مخفف نام است. یک دستورالعمل تعاملی یا غیر تعاملی را می توان با استفاده از پوسته پردازنده ماکرو اجرا کرد. را process خواندن فایل های YAML در Bash در این پست پوشش داده خواهد شد. زبانی برای سریال سازی داده ها YAML است. YAML Ain’t Markup Language مخفف بازگشتی خود نام است. این برنامه با هدف کاربرپسند بودن، خواندن و نوشتن ساده، و قابلیت نمایش پارامترها و ساختارهای داده و همچنین ادغام خوب با زبان های برنامه نویسی فعلی ایجاد شده است.

چگونه می توان کتابخانه YAML را به زبان Bash در اوبونتو 20.04 دریافت کرد؟

در اینجا مثالی از تجزیه فایل YAML با استفاده از عبارت آورده ایم bash زبان برنامه نویسی با اوبونتو 20.04 terminal. نمونه تجزیه یک فایل YAML را در قسمت بررسی کنید bash زبان برنامه نویسی زیر

مثال شماره 1: برنامه تجزیه فایل YAML در bash اسکریپت در اوبونتو 20.04

با استفاده از sed و awk موارد زیر bashتنها تجزیه کننده می تواند فایل های YAML ساده را تجزیه و تحلیل کند. این برنامه هر جفت کلید و مقدار را به صورت a می خواند bash متغیر، مقدار را به آن متغیر اختصاص می دهد و سپس جفت کلید و مقدار بعدی را می خواند. فایل person.yaml نشان داده شده در زیر قرار است در قسمت تجزیه و تحلیل شود bash اسکریپت

چگونه یک فایل YAML را در Bash تجزیه کنم؟

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

همانطور که در پرونده هستیم bash اسکریپت، با bash بخش سرصفحه ما یک مسیر ‘#!/bin/sh’ داده ایم. برخی از این رویکردها به یک shebang در هدر اسکریپت نیاز دارند، که در این مورد نشان می‌دهد که اسکریپت یک اسکریپت پوسته است یا bash اسکریپت پس در قرار دادن این دستور در ابتدای فایل دقت کنید. اسکریپت با استفاده از دستور و bash مترجم حتی اگر بدون آنها کار کند، نوشتن هدر shebang لازم است. پس از آن، تابع را ایجاد کردیم و نام آن را parse_yaml(). در داخل آن تابع، ما یک کلمه کلیدی local داریم که متغیر را در اینجا نشان می دهد. تنها بلوک کدی که می تواند یک متغیر محلی را مشاهده کند، همان بلوک کدی است که در آن اعلام شده است.

پیشنهاد می‌کنیم بخوانید:  دستورات داخلی Bash

Local “حوزه” وجود دارد. یک متغیر محلی در یک تابع فقط در محدوده بلوک تابع معنی دارد. اولین متغیر را به عنوان یک پیشوند تعریف کرده ایم و به آن $2 اختصاص داده ایم که گاهی به عنوان آرگومان موقعیتی از آن یاد می شود. در اینجا، $2 به عنوان دوم نشان داده شده است command-line پارامتر. سپس، دو متغیر محلی دیگر ‘s’ و ‘fs’ داریم. ‘s’ برای خواندن ورودی استاندارد از bash و ‘fs’ به عنوان جداکننده بین فیلدهای ورودی در حالی که از عبارت منظم استفاده می شود استفاده می شود.

پس از آن باید عملیات sed و awk را در تابع parse_yaml مستقر کنیم. ویرایشگر خط sed تعاملی نیست. ورودی متن را از stdin یا یک فایل می‌پذیرد، خطوط خاصی از متن را یکی یکی پردازش می‌کند و نتایج را به stdout یا یک فایل می‌فرستد. sed از گزینه های ne و e استفاده می کند. گزینه -ne اولین خط از فایل ورودی را نمایش می دهد. گزینه -e به برنامه sed دستور می دهد تا موارد زیر را اجرا کند command-line استدلال به عنوان sed. سپس، عملیات awk می آید که “داده محور” است. شما فرآیندهایی را که باید هنگام یافتن داده های مورد نظر انجام شوند، توصیف می کنید. علاوه بر باز کردن و بستن خودکار رکوردها، خواندن رکوردها، تقسیم رکوردها به فیلدها و شمارش رکوردها تنها چند مورد از کارهایی است که awk می تواند برای شما انجام دهد. سپس تابع parse_yaml بسته می شود. در پایان، دستور “eval” را داریم که با لینوکس یا یونیکس ارائه می شود. برای اجرای ورودی ها به صورت دستور پوسته روی یک سیستم لینوکس یا یونیکس، دستور “eval” باید استفاده شود. دستور “eval” تابع parse_yaml را با فایل Person.yaml می گیرد.

داده های خاص فایل YAML با استفاده از دستور echo چاپ می شود. موارد فوق را اجرا کرده ایم bash اسکریپت برای تجزیه فایل YAML با استفاده از bash دستور در اوبونتو 20.04. خروجی تولید شده در پوسته، داشتن داده های فایل YAML در آن است bash قالب

پیشنهاد می‌کنیم بخوانید:  لیست فایل ها را با استفاده از Bash Script کپی کنید

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

مثال شماره 2: برنامه تجزیه فایل پیچیده YAML در bash اسکریپت در اوبونتو 20.04

همانطور که مثال فوق به طور خلاصه تجزیه فایل yaml را نشان داد. اکنون، ما یک ساختار فایل پیچیده YAML برای نشان دادن روش انجام آن گرفته ایم bash این فایل YAML را تجزیه می کند. همچنین، ما در تلاشیم تا داده های فایل yaml را که در فایل YAML وجود ندارد، تجزیه کنیم. محتوای فایل student.yaml زیر است:

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

این خاص bash اسکریپت مشابه موارد فوق است bash برنامه ما فقط از فایل های مختلف در اینجا استفاده کرده ایم. فایل student.yaml توسط bash. در مثال قبلی با فراخوانی دستور echo فیلد را تک تک چاپ کرده ایم. اما در اینجا، نام تابع parse_yaml را با فایل student.YAML چاپ کرده ایم. در اسنپ بعدی اوبونتو 20.04، می توانید نتایج را مشاهده کنید.

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

در اینجا، ما تابع دیگری به عنوان ()verify_param را در خود قرار داده ایم bash اسکریپت برای بررسی ورودی های موجود. تابع هر ورودی در فایل Student.yaml را بررسی می کند.

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

همانطور که ورودی $student_Result را ارائه کردیم که در فایل Student.yaml وجود ندارد. بر اساس تفسیر از bash اسکریپت، پیام استثنایی که در تابع ()verify_param به دستور echo ارائه کرده‌ایم نشان داده می‌شود. اکنون می توانید از تابع مستقیم برای مدیریت تمام پارامترهای خود استفاده کنید. لازم نیست هر کدام را جداگانه مقداردهی کنید و مقادیر null را تأیید کنید.

چگونه یک فایل YAML را در Bash تجزیه کنم؟چگونه یک فایل YAML را در Bash تجزیه کنم؟

نتیجه

هدف این مقاله تجزیه فایل YAML در یک bash زبان برنامه نویسی که ما با ذکر دو مثال به شما نشان دادیم. اولین مثال از الف bash اسکریپت برای نمایش داده های انتخاب شده از فایل YAML با فراخوانی دستور echo است روی ورودی خاص مثال بعدی تنها با دادن یک دستور کل فایل YAML را تجزیه می کند. علاوه بر این، مثال دوم یک تابع دیگر برای تأیید مقادیر پارامتر اضافه می کند. اگر بخواهید عملیاتی را اجرا کنید که به نتیجه خاصی از یک فایل YAML نیاز دارد، این به ویژه مفید است.

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

زمان انتشار: 1402-12-29 22:58:10

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

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

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