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

سرور مجازی NVMe

روش حذف کاراکترهای خاص با استفاده از sed

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


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

توجه به اهمیت فرمان sed. راهنمای امروز ما چندین راه برای حذف کاراکترهای خاص با استفاده از دستور sed در اوبونتو را بررسی خواهد کرد.

سینتکس دستور sed در زیر نوشته شده است:

نحو

sed [options] فرمان [file name]

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

روش استفاده از sed برای حذف کاراکترهای خاص در اوبونتو

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

پیشنهاد می‌کنیم بخوانید:  چگونه می توانم دایرکتوری ها را از grep -R حذف کنم؟

روش 1: روش حذف یک کاراکتر با استفاده از sed

روش 2: چگونه با استفاده از sed چندین کاراکتر را همزمان حذف کنیم

روش اول به احتمال اول می پردازد و احتمال دوم در روش 2 مورد بحث قرار می گیرد، بیایید آنها را یکی یکی بررسی کنیم:

روش 1: روش حذف یک کاراکتر خاص با استفاده از sed

ما یک فایل متنی ایجاد کرده ایم “ch.txt” که حاوی چند کاراکتر خاص است روی خطوط مختلف؛ محتوای داخل فایل در زیر نمایش داده می شود:

$ گربه ch.txt

روش حذف کاراکترهای خاص با استفاده از sed

می توانید متوجه شوید که محتوای داخل “ch.txtخواندن دشوار است. به عنوان مثال، ما می خواهیم کاراکتر “#” را از فایل متنی حذف کنیم. برای این کار باید از دستور زیر برای حذف “#” از کل سند استفاده کنیم:

$ sed ‘s/\#//g’ ch.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

علاوه بر این، اگر می خواهید کاراکتر ویژه را از خط خاصی حذف کنید. برای آن، باید شماره خط را در کنار کلمه کلیدی “s” وارد کنید زیرا دستور زیر فقط “#” را از خط شماره 3 حذف می کند:

$ sed دهه 3/\#//g’ ch.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

روش 2: چگونه با استفاده از sed چندین کاراکتر را همزمان حذف کنیم

حالا ما یک فایل دیگر داریمfile.txt” که حاوی بیش از یک نوع کاراکتر است و ما می‌خواهیم آنها را یکباره حذف کنیم. در این روش سینتکس کمی از دستور بالا تغییر می کند. به عنوان مثال، ما باید پنج کاراکتر را حذف کنیم.#$%*@” از جانب “file.txt”؛

ابتدا به محتوای ” نگاه کنیدfile.txtهمانطور که کلمات توسط این شخصیت ها قطع می شوند.

$ گربه file.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

دستور ذکر شده در زیر به حذف تمام این کاراکترهای خاص از ” کمک می کند.file.txt”:

$ sed ‘s/[#$%*@]//g’ file.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

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

پیشنهاد می‌کنیم بخوانید:  Awk Trim Space

ما یک فایل جدید ایجاد کرده ایم و محتوای “newfile.txt” در زیر نشان داده شده است:

$ گربه newfile.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

برای این کار، دستوری نوشته ایم که حذف می کند#@” و ”%*” از خطوط 2 و 3 از ”newfile.txt” به ترتیب.

$ sed ‘2s/[#@]//g; 3s/[%*]//g’ newfile.txt

روش حذف کاراکترهای خاص با استفاده از sedروش حذف کاراکترهای خاص با استفاده از sed

دستور sed که در روش های بالا استفاده می شود فقط نتیجه را نمایش می دهد روی را terminal به جای اعمال تغییرات در فایل متنی: برای آن، باید از گزینه “-i” دستور sed استفاده کنیم. با هر دستور sed می توان از آن استفاده کرد و تغییرات به جای پرینت در فایل اعمال می شود روی را terminal.

نتیجه

ظاهراً دستور sed به عنوان یک ویرایشگر متن معمولی عمل می کند، اما در مقایسه با ویرایشگرهای دیگر، فهرست اقدامات گسترده تری دارد. شما باید فقط یک دستور بنویسید و تغییرات به طور خودکار انجام می شود. این ویژگی علاقه مندان لینوکس و یا کاربرانی که ترجیح می دهند را به خود جلب می کند terminal از طریق رابط کاربری گرافیکی به دنبال ویژگی های سودمند sed. راهنمای ما متمرکز است روی حذف کاراکترهای خاص از فایل متنی اگر فقط این ویژگی دستور sed را با ویرایشگرهای دیگر مقایسه کنیم، باید کاراکترها را در سراسر فایل جستجو کنید و سپس حذف یک به یک آنها خسته کننده است. process. از طرف دیگر، sed با نوشتن یک دستور تک خطی، همین عمل را انجام می دهد روی terminal.

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

زمان انتشار: 1402-12-30 13:51:06

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

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

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