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

سرور مجازی NVMe

روش استفاده از کلاس های کاراکتر sed

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


ویرایشگر جریان (sed) به دلیل طیف گسترده ای از قابلیت های پشتیبانی شده مانند جایگزینی، ویرایش، حذف و بسیاری موارد دیگر به عنوان یک ویرایشگر قدرتمند شناخته می شود. در حالی که ویرایشگر جریان فهرست طولانی کاراکترهایی دارد که به مدیریت خودکار فایل‌ها کمک می‌کنند: این کاراکترها در مجموعه‌ای از کاراکترهای مشابه به نام کلاس‌های کاراکتر محصور می‌شوند. این کلاس ها شامل شخصیت های یک خانواده است.

به عنوان مثال، ارقام هنگام استفاده از sed از طریق آن قابل دسترسی هستند [[:digit:]کلاس ]و کاراکترهای الفبای عددی در کلاسی به نام as ذخیره می شوند [[:alnum:]]. به طور مشابه، همه کاراکترها به یک کلاس کاراکتر خاص تعلق دارند. با آگاهی از اهمیت این کلاس‌ها، راهنمای امروز ما به ارائه بینشی عمیق از کلاس‌های شخصیت در sed متمرکز شده است.

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

کلاس های شخصیت در sed

این بخش شامل کلاس های کاراکتری است که در sed برای مدیریت فایل های متنی استفاده می شود:

کلاس حروف الفبا : کاراکترهای الفبایی در sed از طریق ” قابل دسترسی هستندکلاس حروف الفبا”؛ و می توان فایل های متنی را با فراخوانی کلاس الفبا مدیریت کرد: کلمه کلیدی مورد استفاده برای ارجاع به این کلاس در زیر نوشته شده است:

[[:alpha:]]

به عنوان مثال، ما می خواهیم تمام خطوطی را که حاوی حروف الفبایی هستند از ” حذف کنیم.test.txt”؛ بنابراین، برای این کار باید از این کلاس همانطور که در دستور زیر نشان داده شده است استفاده کنید.

توجه داشته باشید: از کلمه کلیدی کلاس با دقت استفاده کنید در غیر این صورت دستور کار نخواهد کرد:

روش استفاده از کلاس های کاراکتر sed

علاوه بر این، می توانید عملیات دیگری مانند جایگزینی، چاپ را انجام دهید، همانطور که در دستور بالا حذف را انجام داده ایم.

کلاس حروف عددی : این کلاس شامل کاراکترهای الفبایی عددی است که شما به تمام حروف و اعداد عددی نیز دسترسی خواهید داشت.

[[:alnum:]]

مثال زیر به شما کمک می کند تا کاربرد اصلی این کلاس در اوبونتو را درک کنید: از فایل “test.txt“، ما تمام کلماتی که دارای کاراکترهای الفبایی هستند را با دنبال کردن دستور زیر نمایش داده ایم:

$ sed -n/[[:alnum:]]/p’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکترهای حروف کوچک : این کلاس sed برای مدیریت حروف کوچک در یک فایل متنی استفاده می شود. با استفاده از این کلاس می توانید حروف کوچک را جایگزین، حذف، چاپ کنید. کلمه کلیدی استفاده شده برای این کلاس در زیر نشان داده شده است:

[[:lower:]]

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

$ sed -n/[[:lower:]]/p’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکتر حروف بزرگ : این کلاس از sed شامل حروف بزرگ در آن است. کلمه کلیدی مورد استفاده برای آدرس دادن به کلاس حروف بزرگ در زیر نوشته شده است:

[[:upper:]]

می توانید از این کلاس برای اعمال تغییرات جهت داده شده بر روی تمام حروف بزرگ استفاده کنید. برای مثال، دستور داده شده در زیر تمام خطوطی را که حاوی حروف بزرگ الفبا هستند حذف می کند.

$ sed/[[:upper:]]/d’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

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

[[:blank:]]

به عنوان مثال، ما می خواهیم حروف را جایگزین کنیم.YYY” به جای فضاهای خالی در فایل متنی؛ بنابراین، دستور ذکر شده در زیر به جایگزینی فضای خالی با ” کمک می کند.YYY”:

$ sed ‘s/[[:blank:]]/YYY/g’ new.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

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

پیشنهاد می‌کنیم بخوانید:  روش تخصیص خروجی یک فرمان لینوکس به یک متغیر – bash

کلمه کلیدی مورد استفاده برای آدرس دادن به این کلاس در زیر نشان داده شده است:

[[:space:]]

دستور زیر تمام خطوطی را که حاوی کاراکترهای کلاس فضایی هستند از ” حذف می کند.test.txt”:

$ sed/[[:space:]]/d’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکتر رقمی : این کلاس کاراکتر برای آدرس دهی و مدیریت ارقام در ابزار خط فرمان sed استفاده می شود. علاوه بر این، می توانید تغییرات جمعی مربوط به ارقام را در کل فایل متنی انجام دهید. کلمه کلیدی مورد استفاده برای آدرس دادن به این کلاس در زیر ذکر شده است:

[[:digit:]]

به عنوان مثال، دستوری که در زیر نوشته شده است، تمام خطوطی را که شامل ارقام در “test.txt”:

$ sed -n/[[:digit:]]/p’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکترهای هگزادسیمال : این کلاس در sed شامل کاراکترهای هگزادسیمال (0-9، AF) کلمه کلیدی مورد استفاده برای اشاره به این کاراکترها در زیر ذکر شده است:

[[:xdigit:]]

دستور ذکر شده در زیر خطوط حاوی نویسه های هگزادسیمال را در ” چاپ می کند.test.txt”:

$ sed -n/[[:xdigit:]]/p’ test.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکتر چاپ : این کلاس شامل کاراکترهایی است که قابل چاپ هستند روی صفحه نمایش؛ همچنین شامل فاصله ها می شود: کلمه کلیدی مورد استفاده برای این کلاس:

[[:print:]]

به عنوان مثال، دستوری که در زیر نوشته شده است، تمام خطوطی را که حتی یک کاراکتر دارند چاپ می کند:

$ sed -n/[[:print:]]/p’ new.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

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

[[:cntrl:]]

کلاس کاراکترهای غیر قابل چاپ شامل فضای خالی، برگه ها، شکست خط، page می شکند و غیره،

پیشنهاد می‌کنیم بخوانید:  30 نمونه دستور اسکریپت Bash - یادگیری بش اسکریپت با نمونه

دستوری که در زیر نوشته شده است خطوطی را که شامل کاراکترهای کنترلی در فایل متنی با نام “حذف می کند.new.txt”:

$ sed -n/[[:cntrl:]]/d’ new.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

کلاس کاراکتر نمودار : این کلاس از کاراکترها شامل کاراکترهایی است که قابل چاپ هستند و مانند آن کار می کنند [[:print:]]؛ کلمه کلیدی کلاس گراف در اینجا نوشته شده است:

[[:graph:]]

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

حالا بیایید وارد مثال شویم، دستوری که در زیر نوشته شده است، تمام خطوطی را که دارای کاراکترهای گراف هستند حذف می کند.newfile.txt”:

$ sed/[[:graph:]]/d’ newfile.txt

روش استفاده از کلاس های کاراکتر sedروش استفاده از کلاس های کاراکتر sed

نتیجه

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

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

زمان انتشار: 1402-12-30 13:42:04

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

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

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