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

سرور مجازی NVMe

Bash Wildcard

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


هنگامی که ما نیاز به جستجوی هر چیزی با استفاده از دستورات پوسته داریم، باید الگویی برای جستجو تعریف کنیم. کاراکترهای Wildcard برای تعریف الگوی جستجو یا مطابقت متن استفاده می شوند روی داده های رشته ای در bash پوسته. یکی دیگر از کاربردهای رایج کاراکترهای عام ایجاد عبارات منظم است. روش استفاده از انواع مختلف کاراکترهای عام برای جستجوی فایل ها در این آموزش نشان داده شده است.

کاراکترهای Wildcard

سه شخصیت اصلی عبارتند از

  • ستاره یا ستاره
  • علامت سوال (؟)[]براکت مربع (

)

ستاره

برای جستجوی یک کاراکتر خاص برای صفر یا چند بار استفاده می شود. علامت سوال (؟) برای جستجوی تعداد ثابتی از کاراکترها استفاده می شود که در آن هر علامت سوال (؟) هر کاراکتر را نشان می دهد. براکت های مربع برای مطابقت با کاراکترهای یک محدوده تعریف شده یا گروهی از کاراکترها استفاده می شود. کاربرد این کاراکترها در قسمت بعدی این آموزش نشان داده شده است.

استفاده از ستاره

ستاره می توان به روش های مختلف با دستورات پوسته برای جستجوی فایل ها استفاده کرد. استفاده متفاوت از ستاره در مثال های زیر نشان داده شده است. مثال – 1: جستجوی فایل خاص با نام فایل و ‘*’‘ls’

دستور برای پیدا کردن لیست فایل ها و پوشه های دایرکتوری فعلی استفاده می شود. یک*

دستور همه نام فایل های دایرکتوری فعلی را که با کاراکتر شروع می شود جستجو و چاپ می کند. ‘آ’ .$

ls

$

Bash Wildcard

ls

آ * خروجی: terminalبا توجه به خروجی زیر، 12 فایل در دایرکتوری فعلی وجود دارد که با کاراکتر ‘a’ شروع می شود.

مثال – 2: جستجوی فایل با پسوند خاص و ‘*’ با استفاده از ستاره می توانید هر فایلی را جستجو کنید و پسوند فایل اگر می خواهید همه فایل ها را با“.txt”

پسوند از دایرکتوری جاری سپس دستور زیر را از دایرکتوری اجرا کنید . در اینجا، نام فایل می تواند هر کاراکتر (ها) و هر تعداد کاراکتر باشد. $ ls

* txt همچنین می توانید با استفاده از ستاره فایل های پسوندهای مختلف را جستجو کنید. دستور زیر هر فایل با پسوند را جستجو می کند ‘.sh’یا

“.txt”

$

Bash WildcardBash Wildcard

ls

* .sh *

txt خروجی:

خروجی فهرستی از تمام فایل های موجود دایرکتوری فعلی با پسوند ‘.sh’ و ‘.txt را نشان می دهد. مثال – 3: حذف فایل با تطبیق جزئی و “*” می توانید از ستاره استفاده کنیدبرای مطابقت جزئی با هر نام فایل. دستور زیر فایلی را که حاوی‘تست’

کلمه در هر قسمت از نام فایل. $

ls

$

Bash WildcardBash Wildcard

rm

*

تست

* $ls

خروجی: خروجی زیر نشان می دهد که دو فایل در دایرکتوری فعلی وجود دارد که حاوی کلمه “test” است و این فایل ها پس از اجرای دستور “rm” حذف شده اند. استفاده از علامت سوال (؟)وقتی تعداد دقیق نویسه‌هایی را که می‌خواهید جستجو کنید بدانید، می‌توانید از علامت سؤال (؟) استفاده کنید. مثال‌های زیر کاربرد متفاوت علامت سوال (؟) را نشان می‌دهند.
مثال – 1: جستجوی فایل با نام فایل و ‘?’ فرض کنید پسوند فایل، تعداد کل کاراکترهای یک فایل و برخی از کاراکترهای فایل مشخص باشد، سپس می توانید از این علامت عام برای جستجوی فایل استفاده کنید. دستور اول فایل هایی را که پسوند دارند جستجو می کند ‘.txt’

. دستور دوم آن فایل هایی را که چهار کاراکتر هستند، آخرین کاراکتر ‘t’ و پسوند فایل ‘.txt’ جستجو می کند.

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

$

Bash WildcardBash Wildcard

ls

* txt $

ls ???t.txt

خروجی: خروجی نشان می دهد که 7 فایل در دایرکتوری فعلی با پسوند ‘.txt’ و یک فایل متنی با 4 کاراکتر و آخرین کاراکتر ‘t’ وجود دارد. مثال -2: جستجوی فایل با پسوند و ‘?’

فرض کنید نام فایل و تعداد کل کاراکترهای پسوند فایل را می دانید، سپس می توانید از علامت سوال (؟) برای جستجوی فایل استفاده کنید. دستور زیر فایل را با نام فایل جستجو می کند

‘سلام’

Bash WildcardBash Wildcard

و پسوند سه کاراکتر است.[]$

ls[]$ روی ls

سلام.؟؟؟

خروجی:با توجه به خروجی، دو فایل در دایرکتوری فعلی وجود دارد که نام “hello” و پسوند آن سه کاراکتر است.استفاده از براکت های مربعی ()محدوده های مختلفی از کاراکترها یا گروهی از کاراکترها را می توان در داخل پرانتز استفاده کرد (

) برای جستجوی فایل ها بر اساس محدوده.

مثال -1: جستجوی فایل‌های هر برنامه افزودنی با دو مقدار محدوده دستور زیر هر فایلی را که نام آن حاوی هر کاراکتری در ” است را جستجو می کند. [a-p0-5]ap“و هر رقمی در داخل”0-5

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

$

Bash WildcardBash Wildcard

ls

$ [afgh] ls

* .

* خروجی: [afgh]خروجی زیر لیستی از تمام فایل هایی را نشان می دهد که با الگوی استفاده شده در دستور مطابقت دارند.مثال-2: فایل جستجو با یک کاراکتر خاص شروع می شود و توسط یک کاراکتر دیگر دنبال می شوددر این مثال، فرمان دوم نام فایل‌هایی را که با هر یک از این کاراکترها شروع می‌شوند جستجو می‌کند

به دنبال آن کاراکتر ‘o’ با هر پسوندی.

$

Bash WildcardBash Wildcard

ls

$ ls *

o * خروجی:[05]

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

مثال-3: نام فایل ها را با مقدار پیشوند جستجو کنید دستور زیر با فایل هایی که نامشان با آن شروع می شود مطابقت دارد ‘fn’[t-z]و بعد از آن عددی بین 0 تا 5 آمده است.

$

ls

Bash WildcardBash Wildcard

fn

دستور زیر با فایل هایی مطابقت دارد که حاوی نام، ‘hello’ و پسوند شامل هر کاراکتری از t تا z است. $
[:alpha:] ls [a-zA-Z]سلام.
[:digit:] * [0-9]خروجی:
[:alnum:] خروجی زیر لیستی از تمام فایل هایی را نشان می دهد که با الگوی استفاده شده در دستورات مطابقت دارند. [a-zA-Z]کلاس کاراکتر را می توان در براکت سوم برای مطابقت با نام فایل یا رشته خاص در اسکریپت استفاده کرد. کلاس های مختلفی که می توان در الگو استفاده کرد در زیر توضیح داده شده است.
[:upper:] نام کلاس [A-Z]
[:lower:] هدف [a-z]
[:blank:] برای مطابقت با هر حرف بزرگ و کوچک و معادل آن استفاده می شود
[:print:] .
[:cntrl:] برای مطابقت با هر رقمی استفاده می شود و معادل است
[:space:] .
[:xdigit:] برای مطابقت با هر حروف و رقمی استفاده می شود. معادل است با
[:ascii:] .
[:word:] فقط برای مطابقت با حروف بزرگ و معادل آن استفاده می شود
پیشنهاد می‌کنیم بخوانید:  نقل قول های فرار Bash

فقط برای مطابقت با حروف بزرگ و معادل آن استفاده می شود

برای مطابقت با فضا و تب استفاده می شود. [:alpha:] برای مطابقت با کاراکترهای قابل چاپ استفاده می شود.

برای مطابقت با کاراکترهای غیر قابل چاپ استفاده می شود.

برای تطبیق با while-space استفاده می شود.bash
برای مطابقت با ارقام هگزادسیمال استفاده می شود. برای مطابقت با کاراکترهای ASCII استفاده می شود. از آن برای حروف الفبای عددی از جمله خط زیر (_) استفاده می شود.
موارد استفاده از چهار کلاس پرکاربرد در چهار مثال زیر توضیح داده شده است.
مثال-1: استفاده از در Bash Script

اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای حروف الفبا باشد.
#!/صندوقچه/ [[ $name  =~ ^[[:alpha:]اکو -n“اسم شما چیست؟ “# مقدار ورودی را به متغیر اختصاص دهید خواندن

نام# بررسی کنید که مقدار ورودی فقط شامل الفبا باشد اگر ]]
]

;سپس
اکو

“اسم شما هست

$name

Bash WildcardBash Wildcard

” [:digit:] دیگر

اکوbash
“فقط حروف الفبا را وارد کنید.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-2: استفاده از در Bash Script

اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای کاراکترهای عددی باشد.
#!/صندوقچه/اکو-n“شناسه خود را وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید
خواندن [[:digit:]شناسه
# مقدار ID را تنظیم کنیدشناسه=[[:digit:]”شناسه-

$id
[[ $ID  =~ $regex ]# الگو را با استفاده از آن تنظیم کنید]کلاس regex

=“شناسه- ]+”# بررسی کنید مقدار ورودی فقط شامل عدد باشد اگر
]

;سپس اکو
$ID

معتبر است.”

دیگر

Bash WildcardBash Wildcard

[:alnum:] اکو

$IDbash
باطل است.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-3: استفاده از در Bash Script

اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای کاراکترهای الفبایی باشد.
#!/صندوقچه/ [[ $addr  =~ ^[[:alnum:]اکو -n“آدرس خود را وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید خواندن

اضافه# بررسی کنید مقدار ورودی فقط شامل الفبا و عدد باشد اگر
]

]] ;
سپس

اکو

Bash WildcardBash Wildcard

“آدرس معتبر است.” [:upper:] دیگر

اکوbash
“آدرس نامعتبر است.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-4: استفاده از در Bash Script

اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای حروف بزرگ باشد.
#!/صندوقچه/ [[ $code  =~ ^[[:upper:]اکو -n“کد خود را با حروف بزرگ وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید خواندن

کد# بررسی کنید مقدار ورودی حاوی تمام حروف بزرگ باشد اگر
]

]] ;
سپس

اکو

Bash WildcardBash Wildcard

“کد صحیح است.”

دیگر terminal bash اکو

“کد فقط می تواند دارای حروف بزرگ باشد.”فیخروجی:خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.نتیجهکاربردهای اساسی کاراکترهای عام برای جستجوی فایل ها درو اعتبارسنجی داده ها با استفاده از اسکریپت در این آموزش نشان داده شده است. امیدوارم مثال‌های نشان‌داده‌شده در اینجا به کاربران لینوکس کمک کند تا الگوهای عبارت منظم را به درستی بنویسند تا با هر محتوایی برای اهداف مختلف مطابقت داشته باشند.

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

زمان انتشار: 1402-12-30 09:35:04

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

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

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