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

سرور مجازی NVMe

با استفاده از عملگر =~ در Bash

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


عبارت منظم یک ابزار بسیار مفید برای مطابقت با هر محتوا یا جستجو و جایگزینی محتوای یک فایل یا در یک رشته با استفاده از الگوی regex است. می توان آن را با اسکریپت Bash به روش های مختلف استفاده کرد. نماد =~ در عبارت “if” Bash برای جستجوی هر رشته ای استفاده می شود. بسیاری از انواع عبارت را می توان برای تعریف الگوهای regex منطبق استفاده کرد. برخی از عبارات معمولی که معمولاً استفاده می شود و استفاده از برخی عبارات با عملگر =~ در این آموزش توضیح داده شده است.

عبارات معمولی که معمولاً استفاده می شود

اصطلاح هدف
. برای جستجوی کاراکترها بدون خط جدید (\n) استفاده می شود.
^ برای جستجوی کاراکترها در ابتدای رشته استفاده می شود.
$ برای جستجوی کاراکترهای انتهای رشته استفاده می شود.
[0-9] برای جستجوی هر عددی از محدوده 0-9 در رشته استفاده می شود.
[A-Z] برای جستجوی هر کاراکتری از محدوده AZ در رشته استفاده می شود.
[a-z] برای جستجوی هر کاراکتر و عددی از محدوده az در رشته استفاده می شود.
[^A-Z0-9] برای جستجوی همه کاراکترها به جز حروف بزرگ و ارقام در رشته استفاده می شود.
[a-zA-z0-9] برای جستجوی هر کاراکتر و عددی از محدوده az، AZ و 0-9 در رشته استفاده می شود.
\n برای جستجوی کاراکتر خط جدید استفاده می شود.
\ t برای جستجوی کاراکتر تب استفاده می شود.

نمونه های مختلف =~ اپراتورها

روش های مختلف جستجوی یک رشته خاص در داخل یک متن با استفاده از عملگر =~ و الگوی عبارت منظم در این قسمت از آموزش نشان داده شده است.

پیشنهاد می‌کنیم بخوانید:  Bash چگونه یک فرمان را در یک متغیر اجرا کنیم؟

مثال 1: یک رشته خاص را با استفاده از نماد “*” جستجو کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که مقدار رشته اصلی را در جایی که رشته جستجو می شود و مقدار رشته جستجو را در مقدار رشته اصلی جستجو می کند. بعد، عملگر “=~” با رشته جستجو برای بررسی اینکه آیا رشته جستجو در رشته اصلی وجود دارد یا خیر استفاده می شود. در اینجا، نماد “*” برای نشان دادن هر تعداد کاراکتر استفاده می شود.

#!/bin/bash

#رشته اصلی را بگیرید

خواندن “مقدار رشته اصلی را وارد کنید:” strValue

#رشته جستجو را بگیرید

خواندن “مقدار رشته جستجو را وارد کنید:” جستجو کردن

#بررسی کنید که آیا رشته جستجو در رشته اصلی وجود دارد یا خیر

اگر [[ $strValue =~ .*$search.* ]]; سپس

اکو “رشته در متن وجود دارد.”

دیگر

اکو “رشته در متن وجود ندارد.”

فی

خروجی زیر پس از اجرای اسکریپت با مقدار رشته اصلی “Learn regular expression” و مقدار رشته جستجو “regular” ظاهر می شود. در اینجا، رشته جستجو در رشته اصلی وجود دارد:

با استفاده از عملگر =~ در Bash

مثال 2: پسوند فایل خاص را بررسی کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که نام فایل را از command-line استدلال کنید و بررسی کنید که آیا فایل یک فایل Bash است یا خیر.

#!/bin/bash

#نام فایل را از آرگومان بگیرید

نام فایل=1 دلار

#مقدار پسوند جستجو را تعریف کنید

افزونه=‘ضربه شدید’

#بررسی کنید که آیا پسوند با پسوند فایل مطابقت دارد یا خیر

اگر [[ $filename =~ \.$extension$ ]]; سپس

اکو $filename یک فایل bash است.”

دیگر

اکو $filename یک فایل bash نیست.”

فی

خروجی زیر برای نام فایل “ping1.bash” که یک فایل Bash است ظاهر می شود:

پیشنهاد می‌کنیم بخوانید:  Bash Print همه متغیرها و مقادیر محیطی

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

خروجی زیر برای نام فایل “hello.txt” که یک فایل Bash نیست ظاهر می شود:

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

مثال 3: کاراکترهای خاص را در یک رشته جستجو کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که یک مقدار رشته می گیرد و محدوده کاراکترهای “a” تا “e” را در رشته جستجو کنید.

#!/bin/bash

#رشته اصلی را بگیرید

خواندن “مقدار رشته اصلی را وارد کنید:” strValue

#بررسی کنید که آیا رشته دارای کاراکتری از a تا e است یا خیر

اگر [[ $strValue =~ [a-e] ]]; سپس

اکو “رشته شامل کاراکترهایی از “a” تا “e” است”

دیگر

اکو “رشته حاوی هیچ کاراکتری از “a” تا “e” نیست”

فی

خروجی زیر پس از اجرای اسکریپت با مقدار ورودی “LinuxHint” ظاهر می شود:

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

خروجی زیر پس از اجرای اسکریپت با مقدار ورودی Hello World ظاهر می شود:

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

مثال 4: شماره موبایل را تایید کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که یک شماره موبایل با فرمت خاص را می گیرد و با استفاده از الگوی عبارت منظم و عملگر =~ بررسی کنید که آیا این شماره معتبر است یا نامعتبر است.

#شماره همراه با فرمت داده شده بگیرید

خواندن “شماره موبایل را وارد کنید [880-XXXX-XXXXXX]:” سیار

#الگو را برای تطبیق تنظیم کنید

الگوی regex=‘^880-[0-9]{4}-[0-9]{6}

#معتبر یا معتبر بودن شماره موبایل را بررسی کنید

اگر [[ $mobile =~ $regexPattern.* ]]; سپس

اکو “شماره موبایل معتبر است.”

دیگر

اکو “شماره تلفن همراه نامعتبر است.”

فی

خروجی زیر پس از اجرای اسکریپت با مقدار ورودی “880-1922-032970” ظاهر می شود که معتبر است:

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

خروجی زیر پس از اجرای اسکریپت با مقدار ورودی “880-15677-67345” ظاهر می شود که نامعتبر است:

با استفاده از عملگر =~ در Bashبا استفاده از عملگر =~ در Bash

نتیجه

روش های استفاده از عملگر “=~” برای جستجوی مقادیر رشته با انواع مختلف عبارات منظم در این آموزش نشان داده شده است.

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

زمان انتشار: 1402-12-28 18:42:03

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

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

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