از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه یک فایل YAML را در Bash تجزیه کنم؟
سرفصلهای مطلب
چگونه می توان کتابخانه 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 اسکریپت
همانطور که در پرونده هستیم bash اسکریپت، با bash بخش سرصفحه ما یک مسیر ‘#!/bin/sh’ داده ایم. برخی از این رویکردها به یک shebang در هدر اسکریپت نیاز دارند، که در این مورد نشان میدهد که اسکریپت یک اسکریپت پوسته است یا bash اسکریپت پس در قرار دادن این دستور در ابتدای فایل دقت کنید. اسکریپت با استفاده از دستور و bash مترجم حتی اگر بدون آنها کار کند، نوشتن هدر shebang لازم است. پس از آن، تابع را ایجاد کردیم و نام آن را parse_yaml(). در داخل آن تابع، ما یک کلمه کلیدی local داریم که متغیر را در اینجا نشان می دهد. تنها بلوک کدی که می تواند یک متغیر محلی را مشاهده کند، همان بلوک کدی است که در آن اعلام شده است.
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 قالب
مثال شماره 2: برنامه تجزیه فایل پیچیده YAML در bash اسکریپت در اوبونتو 20.04
همانطور که مثال فوق به طور خلاصه تجزیه فایل yaml را نشان داد. اکنون، ما یک ساختار فایل پیچیده YAML برای نشان دادن روش انجام آن گرفته ایم bash این فایل YAML را تجزیه می کند. همچنین، ما در تلاشیم تا داده های فایل yaml را که در فایل YAML وجود ندارد، تجزیه کنیم. محتوای فایل student.yaml زیر است:
این خاص bash اسکریپت مشابه موارد فوق است bash برنامه ما فقط از فایل های مختلف در اینجا استفاده کرده ایم. فایل student.yaml توسط bash. در مثال قبلی با فراخوانی دستور echo فیلد را تک تک چاپ کرده ایم. اما در اینجا، نام تابع parse_yaml را با فایل student.YAML چاپ کرده ایم. در اسنپ بعدی اوبونتو 20.04، می توانید نتایج را مشاهده کنید.
در اینجا، ما تابع دیگری به عنوان ()verify_param را در خود قرار داده ایم bash اسکریپت برای بررسی ورودی های موجود. تابع هر ورودی در فایل Student.yaml را بررسی می کند.
همانطور که ورودی $student_Result را ارائه کردیم که در فایل Student.yaml وجود ندارد. بر اساس تفسیر از bash اسکریپت، پیام استثنایی که در تابع ()verify_param به دستور echo ارائه کردهایم نشان داده میشود. اکنون می توانید از تابع مستقیم برای مدیریت تمام پارامترهای خود استفاده کنید. لازم نیست هر کدام را جداگانه مقداردهی کنید و مقادیر null را تأیید کنید.
نتیجه
هدف این مقاله تجزیه فایل YAML در یک bash زبان برنامه نویسی که ما با ذکر دو مثال به شما نشان دادیم. اولین مثال از الف bash اسکریپت برای نمایش داده های انتخاب شده از فایل YAML با فراخوانی دستور echo است روی ورودی خاص مثال بعدی تنها با دادن یک دستور کل فایل YAML را تجزیه می کند. علاوه بر این، مثال دوم یک تابع دیگر برای تأیید مقادیر پارامتر اضافه می کند. اگر بخواهید عملیاتی را اجرا کنید که به نتیجه خاصی از یک فایل YAML نیاز دارد، این به ویژه مفید است.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 22:58:10