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

سرور مجازی NVMe

تطبیق الگوی Bash

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


تطبیق الگوی Bash یک مفهوم ضروری است که هنگام انتخاب نام فایل‌های مختلف از یک فهرست و بررسی اینکه آیا رشته‌ای با فرمت معین مطابقت دارد یا خیر، مفید است. این که آیا شما در حال شروع با bash تطبیق الگو یا به دنبال برس کشیدن روی مهارت های شما، این راهنما راه ها و نکات مختلف برای تطبیق الگو را پوشش می دهد.

تطبیق الگو

Bash عمدتاً دو نوع تطبیق الگو را ارائه می دهد: گلوب و کره های گسترده این دو روش ساده ای را برای کاربران ارائه می دهند تا نام فایل ها را انتخاب کنند و رشته های مختلف را در برابر قوانین خاص بررسی کنند. با این حال، Bash از استفاده نیز پشتیبانی می کند رژکس، به خصوص هنگام کار با اسکریپت ها برای اعتبارسنجی ورودی های مختلف کاربر و تجزیه داده ها.

1. تطبیق الگوی Bash با Globs

تطبیق الگوی Glob عمدتاً شامل بررسی نام فایل‌های خاص در یک فهرست مشخص می‌شود. به آنها اشاره می شود حروف عام سه نوع وجود دارد bash الگوهای کره ای:

2. ستاره

زمانی استفاده می‌شود که می‌خواهید با صفر یا چند نام فایل مطابقت دهید.

بیایید چند مثال بزنیم.

بررسی نام فایل ها که با یک کاراکتر مشخص شروع یا پایان می یابند به عنوان مثال، اگر ما نیاز به جستجو برای یک فایل شروع با ل یا لی،

می توانیم از دستورات زیر استفاده کنیم: lsل

* lsلی

تطبیق الگوی Bash

*

توجه داشته باشید که چگونه با همه نام‌های فایلی که با li یا l شروع می‌شوند، در فهرست فعلی، از جمله فهرست‌ها، مطابقت دارد.

تطبیق الگوی Bashتطبیق الگوی Bash

برای تطبیق فقط با دایرکتوری ها، مانند شکل زیر، / را بعد از عام اضافه کنید: به طور مشابه، اگر لازم بود نام فایل ها را مطابقت دهیم که با یک شخصیت مشخص به پایان می رسد یا کاراکترها، می‌توانیم از علامت عام همانطور که در تصویر زیر نشان داده شده است استفاده کنیم. در این مثال، نام فایل‌هایی را که با آن ختم می‌شوند مطابقت می‌دهیم

ه. ls*

تطبیق الگوی Bashتطبیق الگوی Bash

ه

پیشنهاد می‌کنیم بخوانید:  روش استفاده از متغیر در دستور awk

تطبیق الگوی Bashتطبیق الگوی Bash

فرض کنید از نام فایلی که می خواهید جستجو کنید مطمئن نیستید اما کاراکترهای داده شده را می دانید. مانند مثال زیر، همچنان می‌توانید با اضافه کردن علامت عام قبل و بعد از کاراکترها، نام فایل‌ها را مطابقت دهید. ما نام فایل‌هایی را مطابقت دادیم که شامل: nux

کلمه کلیدی در نام آنها

بررسی فایل ها با یک پسوند داده شده

با تطبیق الگوی Bash، می‌توانید فایل‌های با پسوند معین را پیدا کنید. به عنوان مثال، اگر می خواهید تمام فایل های pdf یا متنی را پیدا کنید. در این صورت، علامت عام را قبل از پسوند فایل اضافه می کنید. بیایید مثال زیر را برای مطابقت با تمام فایل های متنی ببینیم: ls*

txt

تطبیق الگوی Bashتطبیق الگوی Bash

تمام فایل های متنی مطابق شکل زیر مطابقت دارند: 3.

علامت سوال (؟)

علامت سوال با نام فایل هایی که با یک کاراکتر مطابقت دارند مطابقت دارد. با این حال، شما باید تعداد کاراکترهایی را که یک نام فایل داده شده دارد، بدانید، به طوری که هر یک از «?» هر شخصیت را نشان می دهد.

به عنوان مثال، برای تطبیق نام فایل با چهار کاراکتر، اما آخرین کاراکتر را می‌دانیم، می‌توانیم مثال زیر را داشته باشیم: ls

تطبیق الگوی Bashتطبیق الگوی Bash

???e

به طور مشابه، برای پیدا کردن یک پسوند داده شده که در آن تعداد کاراکترهای نام فایل را می دانید، می توانیم از دستور زیر استفاده کنیم: ls

تطبیق الگوی Bashتطبیق الگوی Bash

?????.txt []

4. براکت های مربعی

وقتی می‌خواهید جستجوی خاص‌تری مانند تطبیق نام فایل‌هایی که حاوی کاراکترهای داده شده هستند انجام دهید، کاراکترهایی که مطابقت دارند را می‌توان در پرانتز اضافه کرد.

به عنوان مثال، برای تطبیق نام فایل هایی که حاوی هر کاراکتر یا اعداد مشخص شده بدون در نظر گرفتن پسوند هستند، می توانیم دستور زیر را داشته باشیم: [e-m]ls*.

*

تطبیق الگوی Bashتطبیق الگوی Bash

در اینجا، نام فایل هایی را که حاوی هر کاراکتری از e تا m هستند و هر پسوندی دارند مطابقت می دهیم. [f-l] اگر می‌خواهید نام فایل‌هایی را که با کاراکترهای خاصی شروع می‌شوند مطابقت دهید، بیایید شروع کنیم

و با داشتن یک پسوند داده شده، می توانیم از الگوی زیر استفاده کنیم: [f-l]ls*txt

تطبیق الگوی Bashتطبیق الگوی Bash

*

5. تطبیق الگوی Bash با Glob های توسعه یافته روی glob های گسترده شباهت زیادی به عبارات منظم دارند. با این حال، آنها به طور پیش فرض خاموش هستند. وقتی باید از آنها استفاده کنید، باید آنها را بچرخانید

با استفاده از دستور زیر: $ خرید -s

extglob

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

گلوب های توسعه یافته عبارتند از:

6. ?(الگوها) هنگام تطبیق با استفاده می شود صفر یا یک

وقوع الگوی مشخص شده

برای مثال، اگر می‌خواهید همه نام‌های فایل‌ها را با یک پسوند مشخص یا آن‌هایی که حاوی کاراکترهای خاصی در نام‌گذاری آنها هستند مطابقت دهید، می‌توانیم دستور زیر را داشته باشیم: $ ls?(*nux * |*.sh

تطبیق الگوی Bashتطبیق الگوی Bash

)

7. *(الگوها) هنگام تطبیق با استفاده می شود صفر یا بیشتر

وقوع الگوی مشخص شده

برای مثال، می‌توانیم از دستور زیر برای تطبیق نام فایل‌هایی که با صفر یا بیشتر «f» شروع می‌شوند و فایل‌های متنی هستند، استفاده کنیم: $ ls*(f)

تطبیق الگوی Bashتطبیق الگوی Bash

txt

8. +(الگوها) هنگام تطبیق با استفاده می شود یکی یا بیشتر

وقوع الگوی مشخص شده اگر دستور قبلی را اجرا می کنیم، توجه داشته باشید که فقط با نام فایل هایی مطابقت دارد که باید حداقل یک “f” داشته باشند، به این معنی که txt

فایل منطبق نخواهد بود. $ ls+(f)

تطبیق الگوی Bashتطبیق الگوی Bash

txt

9. @(الگوها)

هنگام تطبیق با یک رخداد از الگوی مشخص شده استفاده می شود.

اگر فقط نیاز داریم نام فایل‌هایی را که فقط یک «f» دارند با همان الگوی استفاده شده در مثال قبلی مطابقت دهیم، می‌توانیم از @ همانطور که در زیر نشان داده شده است استفاده کنیم: $ ls@(f)

تطبیق الگوی Bashتطبیق الگوی Bash

txt

10. !(الگوها)

زمانی استفاده می‌شود که بخواهید هر چیز دیگری را که با الگوی مشخص شده مطابقت ندارد مطابقت دهید.

بیایید یک مثال داشته باشیم که در آن می‌خواهیم همه نام فایل‌هایی را که الگوی مشخص‌شده را ندارند مطابقت دهیم. در این مثال، ما همه نام فایل هایی را که فایل متنی یا اسکریپت Bash نیستند مطابقت می دهیم. دستور به شرح زیر است: $ ls!(*txt|*.sh

تطبیق الگوی Bashتطبیق الگوی Bash

)

نتیجه روی این راهنما تطبیق الگوی Bash و مثال‌های مختلف را ارائه می‌کند تا اطمینان حاصل شود که روش کار با گزینه‌های مختلف تطبیق الگو را می‌دانید. با استفاده از این پایه، می توانید تطبیق الگوی Bash خود را پیش ببرید و زمانی که می خواهید الگوهای مختلف را مطابقت دهید از همان منطق استفاده کنید. terminal را

یا هنگام ایجاد اسکریپت های Bash.

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

زمان انتشار: 1402-12-29 20:56:04

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

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

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