از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash Wildcard
سرفصلهای مطلب
کاراکترهای Wildcard
سه شخصیت اصلی عبارتند از
- ستاره یا ستاره
- علامت سوال (؟)[]براکت مربع (
)
ستاره
برای جستجوی یک کاراکتر خاص برای صفر یا چند بار استفاده می شود. علامت سوال (؟) برای جستجوی تعداد ثابتی از کاراکترها استفاده می شود که در آن هر علامت سوال (؟) هر کاراکتر را نشان می دهد. براکت های مربع برای مطابقت با کاراکترهای یک محدوده تعریف شده یا گروهی از کاراکترها استفاده می شود. کاربرد این کاراکترها در قسمت بعدی این آموزش نشان داده شده است.
استفاده از ستاره
ستاره می توان به روش های مختلف با دستورات پوسته برای جستجوی فایل ها استفاده کرد. استفاده متفاوت از ستاره در مثال های زیر نشان داده شده است. مثال – 1: جستجوی فایل خاص با نام فایل و ‘*’‘ls’
دستور همه نام فایل های دایرکتوری فعلی را که با کاراکتر شروع می شود جستجو و چاپ می کند. ‘آ’ .$
ls
$
ls
آ * خروجی: terminalبا توجه به خروجی زیر، 12 فایل در دایرکتوری فعلی وجود دارد که با کاراکتر ‘a’ شروع می شود.
پسوند از دایرکتوری جاری سپس دستور زیر را از دایرکتوری اجرا کنید . در اینجا، نام فایل می تواند هر کاراکتر (ها) و هر تعداد کاراکتر باشد. $ ls
“.txt”
$
ls
* .sh *
خروجی فهرستی از تمام فایل های موجود دایرکتوری فعلی با پسوند ‘.sh’ و ‘.txt را نشان می دهد. مثال – 3: حذف فایل با تطبیق جزئی و “*” می توانید از ستاره استفاده کنیدبرای مطابقت جزئی با هر نام فایل. دستور زیر فایلی را که حاوی‘تست’
کلمه در هر قسمت از نام فایل. $
ls
$
rm
*
تست
* $ls
مثال – 1: جستجوی فایل با نام فایل و ‘?’ فرض کنید پسوند فایل، تعداد کل کاراکترهای یک فایل و برخی از کاراکترهای فایل مشخص باشد، سپس می توانید از این علامت عام برای جستجوی فایل استفاده کنید. دستور اول فایل هایی را که پسوند دارند جستجو می کند ‘.txt’
. دستور دوم آن فایل هایی را که چهار کاراکتر هستند، آخرین کاراکتر ‘t’ و پسوند فایل ‘.txt’ جستجو می کند.
$
ls
* txt $
خروجی: خروجی نشان می دهد که 7 فایل در دایرکتوری فعلی با پسوند ‘.txt’ و یک فایل متنی با 4 کاراکتر و آخرین کاراکتر ‘t’ وجود دارد. مثال -2: جستجوی فایل با پسوند و ‘?’
فرض کنید نام فایل و تعداد کل کاراکترهای پسوند فایل را می دانید، سپس می توانید از علامت سوال (؟) برای جستجوی فایل استفاده کنید. دستور زیر فایل را با نام فایل جستجو می کند
‘سلام’
و پسوند سه کاراکتر است.[]$
ls[]$ روی ls
سلام.؟؟؟
خروجی:با توجه به خروجی، دو فایل در دایرکتوری فعلی وجود دارد که نام “hello” و پسوند آن سه کاراکتر است.استفاده از براکت های مربعی ()محدوده های مختلفی از کاراکترها یا گروهی از کاراکترها را می توان در داخل پرانتز استفاده کرد (
مثال -1: جستجوی فایلهای هر برنامه افزودنی با دو مقدار محدوده دستور زیر هر فایلی را که نام آن حاوی هر کاراکتری در ” است را جستجو می کند. [a-p0-5]ap“و هر رقمی در داخل”0-5
و پسوند فایل می تواند هر کاراکتری باشد.
$
ls
$ [afgh] ls
* خروجی: [afgh]خروجی زیر لیستی از تمام فایل هایی را نشان می دهد که با الگوی استفاده شده در دستور مطابقت دارند.مثال-2: فایل جستجو با یک کاراکتر خاص شروع می شود و توسط یک کاراکتر دیگر دنبال می شوددر این مثال، فرمان دوم نام فایلهایی را که با هر یک از این کاراکترها شروع میشوند جستجو میکند
به دنبال آن کاراکتر ‘o’ با هر پسوندی.
$
ls
$ ls *
خروجی زیر لیستی از تمام فایل هایی را نشان می دهد که با الگوی استفاده شده در دستور مطابقت دارند.
$
ls
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:] | فقط برای مطابقت با حروف بزرگ و معادل آن استفاده می شود |
فقط برای مطابقت با حروف بزرگ و معادل آن استفاده می شود
برای مطابقت با فضا و تب استفاده می شود. [:alpha:] برای مطابقت با کاراکترهای قابل چاپ استفاده می شود.
برای مطابقت با کاراکترهای غیر قابل چاپ استفاده می شود.
برای مطابقت با ارقام هگزادسیمال استفاده می شود. برای مطابقت با کاراکترهای ASCII استفاده می شود. از آن برای حروف الفبای عددی از جمله خط زیر (_) استفاده می شود.
موارد استفاده از چهار کلاس پرکاربرد در چهار مثال زیر توضیح داده شده است.
مثال-1: استفاده از در Bash Script
اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای حروف الفبا باشد.
#!/صندوقچه/ [[ “$name“ =~ ^[[:alpha:]اکو -n“اسم شما چیست؟ “# مقدار ورودی را به متغیر اختصاص دهید خواندن
نام# بررسی کنید که مقدار ورودی فقط شامل الفبا باشد اگر ]]
]
;سپس
اکو
“اسم شما هست
$name
” [:digit:] دیگر
“فقط حروف الفبا را وارد کنید.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-2: استفاده از در Bash Script
اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای کاراکترهای عددی باشد.
#!/صندوقچه/اکو-n“شناسه خود را وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید
خواندن [[:digit:]شناسه
# مقدار ID را تنظیم کنیدشناسه=[[:digit:]”شناسه-
$id
“ [[ $ID =~ $regex ]# الگو را با استفاده از آن تنظیم کنید]کلاس regex
=“شناسه- ]+”# بررسی کنید مقدار ورودی فقط شامل عدد باشد اگر
]
;سپس اکو “
$ID
معتبر است.”
دیگر
[:alnum:] اکو
“
باطل است.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-3: استفاده از در Bash Script
اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای کاراکترهای الفبایی باشد.
#!/صندوقچه/ [[ $addr =~ ^[[:alnum:]اکو -n“آدرس خود را وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید خواندن
اضافه# بررسی کنید مقدار ورودی فقط شامل الفبا و عدد باشد اگر
]
]] ;
سپس
اکو
“آدرس معتبر است.” [:upper:] دیگر
“آدرس نامعتبر است.” فی خروجی:
خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.
مثال-4: استفاده از در Bash Script
اسکریپت زیر بررسی می کند که ورودی گرفته شده از کاربر فقط دارای حروف بزرگ باشد.
#!/صندوقچه/ [[ $code =~ ^[[:upper:]اکو -n“کد خود را با حروف بزرگ وارد کنید:”# مقدار ورودی را به متغیر اختصاص دهید خواندن
کد# بررسی کنید مقدار ورودی حاوی تمام حروف بزرگ باشد اگر
]
]] ;
سپس
اکو
“کد صحیح است.”
دیگر terminal bash اکو
“کد فقط می تواند دارای حروف بزرگ باشد.”فیخروجی:خروجی زیر پیام ورودی نامعتبر و معتبر را نشان می دهد.نتیجهکاربردهای اساسی کاراکترهای عام برای جستجوی فایل ها درو اعتبارسنجی داده ها با استفاده از اسکریپت در این آموزش نشان داده شده است. امیدوارم مثالهای نشاندادهشده در اینجا به کاربران لینوکس کمک کند تا الگوهای عبارت منظم را به درستی بنویسند تا با هر محتوایی برای اهداف مختلف مطابقت داشته باشند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 09:35:04