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

سرور مجازی NVMe

Bash رشته را به آرایه تقسیم می کند

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


ممکن است در موقعیت های زیادی قرار بگیرید که در حین کار مجبور شوید مقادیر رشته را به آرایه ها یا دیگر ساختارهای داده تقسیم کنید. روی آ bash اسکریپت در یک سیستم لینوکس در اینجا، شما باید آن را پاک کنید bash تابع تقسیم داخلی را برای تقسیم هر رشته ای در اختیار ما قرار نمی دهد. اما همیشه جایگزینی برای چنین مشکلاتی وجود دارد. از این رو، ما از جداکننده ها برای تبدیل یا تقسیم برخی رشته ها به یک آرایه استفاده خواهیم کرد. بیایید شروع به بررسی چند نمونه در اوبونتو 20.04 کنیم. پوسته را باز کنید terminal ابتدا با استفاده از “Ctrl+Alt+T” روی دسکتاپ

مثال 01

ما یک متغیر “str” ​​را در پوسته با مقدار رشته ای در آن اعلام کرده ایم. در اینجا، از متغیر “IFS” به عنوان جداکننده برای تقسیم رشته “str” ​​استفاده کردیم. جداکننده “IFS” حاوی “فضا” به عنوان مقدار آن است. این بدان معناست که رشته با استفاده از فاصله بین مقادیر آن به یک آرایه تقسیم می شود. اکنون، حلقه “for” در اینجا برای تکرار رشته “str” ​​استفاده می شود. در بند “do”، هر عنصر از متغیر “str” ​​به عنوان یک آرایه نمایش داده می شود. پس از پایان حلقه، terminal رشته را به صورت آرایه ای مطابق تصویر زیر نمایش می دهد.

Bash رشته را به آرایه تقسیم می کند

مثال 02

بیایید مثال دیگری بزنیم تا خروجی کمی متفاوت داشته باشیم. شما می توانید به وضوح ببینید که رشته شامل کاراکتر “,” بعد از هر کلمه در آن است. این کاراکتر ویژه به عنوان یک جداکننده استفاده خواهد شد. بنابراین، ما “،” را به عنوان یک مقدار برای متغیر “IFS” اعلام کرده ایم.

]حلقه “for” دوباره در اینجا برای تکرار متغیر رشته “str” ​​مقداردهی اولیه شده است. در بند “do” حلقه “for” از دستور echo برای نمایش هر کلمه به طور جداگانه با عدد شاخص که با مقدار متغیر “IFS” جدا شده است استفاده شده است. پس از پایان حلقه، برنامه هر کلمه از رشته را به صورت جداگانه در قالب یک آرایه نمایش می دهد. کاراکتر “,” مسئول این نوع تقسیم بین مقادیر رشته است. در نتیجه، ما 5 مقدار را در قالب یک آرایه از یک متغیر رشته ای “str” ​​دریافت کرده ایم.

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

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

مثال 03

بیایید مثال دیگری از تقسیم یک رشته به یک آرایه در داخل داشته باشیم bash فایل. بنابراین، شما باید یک ایجاد کنید bash فایل “test.sh” را با یک پرس و جو لمسی در پوسته، همانطور که در زیر ذکر شده است.

$ touch test.sh

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

حالا فایل جدید ایجاد شده را در یک ویرایشگر باز کنید تا a بنویسید bash اسکریپت در آن ما از “GNU Nano” ویرایشگر برای این منظور. می توانید از ویرایشگر vim نیز استفاده کنید.

$ nano test.sh

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

در داخل bash فایل را اضافه کرده ایم bash ابتدا پسوند این کد را قابل اجرا می کند bash فرمان در پوسته پس از آن، یک متغیر “str” ​​با مقدار رشته طولانی در آن اعلام و مقداردهی اولیه شده است. متغیر “IFS” اعلام شده و با مقدار “space” تخصیص داده شده است. دستور read در اینجا برای خواندن داده‌ها از متغیر رشته‌ای «str» به‌عنوان یک آرایه با کمک پرچم «-ra» و ذخیره در متغیر جدید «Arr» استفاده شده است.

دستور echo اندازه یک متغیر Arr، یعنی آرایه را محاسبه و نمایش می دهد. حلقه “for” در اینجا برای تکرار مقادیر مقادیر آرایه است، به عنوان مثال، “Arr” در یک دنباله و در داخل پوسته با استفاده از دستور printf نمایش داده می شود. برنامه در اینجا به پایان می رسد. کد خود را با “Ctrl+S” ذخیره کنید و با استفاده از میانبر “Ctrl+X” از ویرایشگر خارج شوید.

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

تازه ایجاد شده خود را اجرا کنید bash اسکریپت با bash دستور به همراه نام a bash فایل، به عنوان مثال، “test.sh”. اعدام از bash اسکریپت ابتدا اندازه یک رشته “str” ​​یعنی آرایه را نشان می دهد. پس از آن، terminal مقادیر یک متغیر رشته ای را در قالب یک آرایه نمایش می دهد، یعنی هر کلمه جدا شده است. در مجموع 9 کلمه نمایش داده شده است روی پوسته، همانطور که در زیر نشان داده شده است.

$ bash test.sh

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

مثال 04

بیایید یک تصویر دیگر برای تقسیم یک رشته به یک آرایه ایجاد کنیم. بنابراین، همان فایل کد را باز کنید و متغیر رشته “str” ​​را به روز کنید. ما 6 کلمه در رشته اضافه کرده ایم که با کاما از هم جدا شده اند. این کاما به عنوان جداکننده در متغیر “IFS” استفاده خواهد شد. دستور read عبارت است از خواندن کلمات یک رشته “str” ​​به عنوان یک آرایه به طور جداگانه و ذخیره هر یک از آنها در یک متغیر “Arr”. جداکننده در اینجا کار می کند و هر کلمه را از یک رشته جدا می کند.

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

از 6 عبارت پژواک در اینجا برای نمایش هر مقدار از متغیر “Arr” با استفاده از نمایه های کلمات استفاده شده است. در تصویر نشان داده شده می توانید نحوی را برای گرفتن هر مقدار بر اساس شاخص مشاهده کنید.

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

پس از اجرای کد در پوسته با کمک a bash پرس و جو، ما 6 خط خروجی داریم. هر کلمه از یک رشته به طور جداگانه در متغیر آرایه “Arr” ذخیره می شود و با کمک ایندکس ها نمایش داده می شود.

$ bash test.sh

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

مثال 05

بیایید آخرین مثال خود را از تقسیم یک مقدار رشته به یک آرایه داشته باشیم. این بار، ما از متغیر “IFS” به عنوان جداکننده برای تقسیم یک رشته استفاده نمی کنیم. ما از پرچم “tr” برای این کار استفاده خواهیم کرد. بنابراین، فایل test.sh را در یک ویرایشگر نانو باز کنید تا آن را به روز کنید. اضافه کردن bash پسوند در خط اول

متغیر نوع رشته “str” ​​مقداردهی اولیه شده است. متغیر دیگر، “Arr” از مقدار متغیر “str” ​​استفاده می کند و با استفاده از پرچم “tr” آن را به قطعات تقسیم می کند. جداکننده “tr” حاوی فاصله به عنوان مقدار آن است. حلقه “for” مقادیر متغیر “Arr” را با کمک شاخص ها تکرار می کند. هر مقدار به صورت جداگانه در قالب یک آرایه نمایش داده می شود.

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

پس از اجرای bash کد، نتیجه را به صورت آرایه ای دریافت کرده ایم. هر کلمه در یک رشته “str” ​​جدا شده و به یک مقدار مستقل، یعنی عنصر Array تبدیل می شود.

$ bash test.sh

Bash رشته را به آرایه تقسیم می کندBash رشته را به آرایه تقسیم می کند

نتیجه

در این مقاله چندین مثال برای تقسیم مقدار رشته به آرایه مورد بحث قرار داده ایم. برای این منظور از متغییر جداکننده «IFS» و «tr» استفاده کرده ایم. همه مثال ها کاملاً قابل درک هستند و بدون هیچ مشکلی قابل پیاده سازی هستند.

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

زمان انتشار: 1402-12-30 08:45:03

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

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

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