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

سرور مجازی NVMe

نمونه هایی از گروه های دستگیری

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


عملیات مدیریت فایل های متنی نقشی حیاتی در زندگی روزمره یک کاربر رایانه ایفا می کند، زیرا برخورد با متن در بین کاربران همه حرفه ها رایج است. لینوکس و توزیع‌های آن انواع ابزارها و ابزارهای خط فرمان را برای دسترسی و مدیریت فایل‌های متنی مانند ویرایشگر پیش‌فرض، vim، nano ارائه می‌کنند. این ابزارها به ویرایش، حذف، جایگزینی متن داخل فایل های متنی کمک می کنند. با این حال، کاربران باید فایل را با استفاده از هر یک از این ویرایشگرها باز کرده و تغییراتی را که قرار است انجام شوند به صورت دستی انجام دهند.

ویرایشگر معروف دیگری وجود دارد که به نام “ویرایشگر جریان (sed)”؛ ابزار خط فرمان sed اوبونتو پشتیبانی گسترده ای را برای مدیریت فایل های متنی فراهم می کند. این ابزار به دلیل ویژگی های پیشرفته ای که در هنگام کار با فایل های متنی ارائه می دهد، در برترین ویرایشگرها قرار گرفته است. دلیل محبوبیت آن عملیات فرمان یک خطی است: به این معنی که می تواند فایل های متنی را با استفاده از آن مدیریت کند terminal و کاربران نیازی به باز کردن و ویرایش دستی هیچ فایل متنی ندارند. Capturing group یکی دیگر از ویژگی های پیشرفته این ابزار است. قابلیت ضبط گروهی sed به کاربر اجازه می دهد تا قسمت خاصی از یک فایل متنی یا یک خط را دریافت کند. در این راهنمای دقیق، مفهوم گروه بندی کپچر، کار و کاربرد آن با sed را به اختصار شرح داده ایم.

در ابتدا، بینش عمیقی در مورد گروه های ضبط خواهیم داشت و سپس به استفاده از آن با sed ادامه می دهیم:

بنابراین، بیایید راهنمای امروز را شروع کنیم:

روش کار گروه های ضبط

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

  • برای گرفتن اطلاعات
  • متن را برای مطابقت خاص دستکاری کنید
پیشنهاد می‌کنیم بخوانید:  استفاده از Regex در عبارات Bash Case

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

روش ایجاد گروه های ضبط با استفاده از دستور sed در اوبونتو

گروه های ضبط در sed با اعمال پرانتز به عبارات منظم یا عملیاتی که کاربر می خواهد انجام دهد، تشکیل می شوند. به عنوان مثال، برای ایجاد گروه‌های ضبط، باید پرانتزی‌هایی مانند «\(» در شروع و «\)» در انتهای یک عبارت منظم خاص قرار دهید:

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

نمونه های بعدی استفاده از گروه های ضبط را با استفاده از دستور sed نشان می دهد. نمونه ها از سطح پایه تا پیشرفته متفاوت است.

گرفتن گروه Single با استفاده از دستور sed

دستور نوشته شده در زیر کلمه “سلام” و سپس کلمه ای که بعد از آن وجود دارد را جایگزین کنید (“sed!”) با “Linuxhint”: ممکن است متوجه شده باشید که گروه ضبط در عبارت پرانتز “\(” و ”\)“.

$ اکو سلام sed! | sed ‘s/\(Hello\) sed!/\1 Linuxhint/’

نمونه هایی از گروه های دستگیری

گرفتن چندین گروه با استفاده از دستور sed

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

در قسمت echo این دستور سه توزیع و یک لینوکس والد قرار داده شده است، یعنی در مجموع چهار ورودی: اما در دستور sed فقط 1،2 و 3 گروه را به ترتیب معکوس فراخوانی کرده ایم. خروجی نشان می دهد که تنها سه گروه به ترتیب معکوس چاپ می شوند در حالی که “فدورا” جایگاه اصلی خود را حفظ می کند:

$ اکو اوبونتو دبیان لینوکس فدورا | sed ‘s/\(Ubuntu\) \(Debian\) \(Linux\)/\3 \2 \1/’

نمونه هایی از گروه های دستگیرینمونه هایی از گروه های دستگیری

گرفتن گروه هایی از عبارات پیچیده

فرض کنید عبارتی داریم که حاوی کلمات کلیدی الفبایی است. ما باید گروه بسازیم و سپس آنها را به ترتیب (معکوس / عادی) چاپ کنیم. دستور داده شده در زیر نشان می دهد که عبارت حاوی کلمات کلیدی الفبایی است. ما گروه هایی از هر سه کلمه الفبایی ساخته ایم و سپس آن کلمات را به ترتیب معکوس نمایش می دهیم:

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

توجه داشته باشید: همین دستور را می توان با جایگزین کردن “\” استفاده کردw\w*” با “[[:alnum:]_]\{1،\}”:

$ اکو Linuxhint 123 capture_groups | sed ‘s/\(\w\w*\) \(\w\w*\) \(\w\w*\)/\3 \2 \1/’

نمونه هایی از گروه های دستگیرینمونه هایی از گروه های دستگیری

دستور بالا حاوی گروه های ضبط است.\(\w\w*\)”؛ اینها برای کلمات کلیدی الفبایی کار می کنند. می توانید دستور بالا را با استفاده از کلاس کاراکترهای الفبایی به عنوان گروه کپچر اجرا کنید. به عنوان مثال، دستور ذکر شده در زیر زمانی که از کلاس کاراکترهای الفبایی به عنوان یک گروه ضبط استفاده می شود، خروجی یکسانی را ارائه می دهد:

$ اکو Linuxhint 123 capture_groups | sed ‘s/\([[:alnum:]_]\{1،\}\) \([[:alnum:]_]\{1،\}\) \([[:alnum:]_]\{1،\}\)/\3 \2 \1/’

نمونه هایی از گروه های دستگیرینمونه هایی از گروه های دستگیری

نتیجه

ابزار خط فرمان Sed راهنمایی دقیقی برای مقابله با فایل های متنی با استفاده از خط فرمان ارائه می دهد terminal; کار کردن با این ویرایشگر ممکن است دشوار باشد، اما همانطور که جزئیات را بررسی می کنید، درک و اعمال آن آسان خواهد بود. علاوه بر این، عملکردهای پیشرفته آن باعث سهولت این کار می شود process دستکاری و مدیریت فایل های متنی؛ مانند عبارات منظم و گرفتن گروهی. در این مقاله، مفهوم گروه های دستگیری را در sed مشخص کرده ایم. و با اشاره به چند نمونه استفاده کامل را ارائه کرد. گروه های ضبط بسیار مفید هستند، به خصوص زمانی که فایل های متنی بسیار بزرگی دارید و می خواهید محتوای خاصی را از آن فایل ها شناسایی کنید.

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

زمان انتشار: 1402-12-30 14:21:05

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

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

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