از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش حذف کاراکترهای خاص با استفاده از sed
سرفصلهای مطلب
توجه به اهمیت فرمان sed. راهنمای امروز ما چندین راه برای حذف کاراکترهای خاص با استفاده از دستور sed در اوبونتو را بررسی خواهد کرد.
سینتکس دستور sed در زیر نوشته شده است:
نحو
گاهی اوقات ممکن است کاراکترهای خاص نیاز محتوایی باشد که در یک فایل متنی نوشته شده است، اما در صورت استفاده غیر ضروری، فایل را به هم میریزد و این احتمال وجود دارد که خواننده به آن توجه نکند، در نتیجه سندی بیهدف ایجاد میشود.
روش استفاده از sed برای حذف کاراکترهای خاص در اوبونتو
در این بخش به طور مختصر روش های حذف کاراکترهای خاص از یک فایل متنی با استفاده از sed توضیح داده می شود. بستگی دارد روی تعداد کاراکترهای فایل شما که می خواهید حذف کنید؛ هنگام حذف کاراکترها از یک فایل دو امکان وجود دارد، یا می خواهید یک کاراکتر خاص را حذف کنید یا می خواهید چندین کاراکتر را همزمان حذف کنید. از این احتمالات ذکر شده در بالا، ما این بخش را به دو روش توسعه داده ایم که به هر دو احتمال می پردازد:
روش 1: روش حذف یک کاراکتر با استفاده از sed
روش 2: چگونه با استفاده از sed چندین کاراکتر را همزمان حذف کنیم
روش اول به احتمال اول می پردازد و احتمال دوم در روش 2 مورد بحث قرار می گیرد، بیایید آنها را یکی یکی بررسی کنیم:
روش 1: روش حذف یک کاراکتر خاص با استفاده از sed
ما یک فایل متنی ایجاد کرده ایم “ch.txt” که حاوی چند کاراکتر خاص است روی خطوط مختلف؛ محتوای داخل فایل در زیر نمایش داده می شود:
می توانید متوجه شوید که محتوای داخل “ch.txtخواندن دشوار است. به عنوان مثال، ما می خواهیم کاراکتر “#” را از فایل متنی حذف کنیم. برای این کار باید از دستور زیر برای حذف “#” از کل سند استفاده کنیم:
علاوه بر این، اگر می خواهید کاراکتر ویژه را از خط خاصی حذف کنید. برای آن، باید شماره خط را در کنار کلمه کلیدی “s” وارد کنید زیرا دستور زیر فقط “#” را از خط شماره 3 حذف می کند:
روش 2: چگونه با استفاده از sed چندین کاراکتر را همزمان حذف کنیم
حالا ما یک فایل دیگر داریمfile.txt” که حاوی بیش از یک نوع کاراکتر است و ما میخواهیم آنها را یکباره حذف کنیم. در این روش سینتکس کمی از دستور بالا تغییر می کند. به عنوان مثال، ما باید پنج کاراکتر را حذف کنیم.#$%*@” از جانب “file.txt”؛
ابتدا به محتوای ” نگاه کنیدfile.txtهمانطور که کلمات توسط این شخصیت ها قطع می شوند.
دستور ذکر شده در زیر به حذف تمام این کاراکترهای خاص از ” کمک می کند.file.txt”:
در اینجا میتوانیم مثال دیگری بکشیم، فرض کنید میخواهیم فقط چند کاراکتر را از خطوط خاص حذف کنیم.
ما یک فایل جدید ایجاد کرده ایم و محتوای “newfile.txt” در زیر نشان داده شده است:
برای این کار، دستوری نوشته ایم که حذف می کند#@” و ”%*” از خطوط 2 و 3 از ”newfile.txt” به ترتیب.
دستور sed که در روش های بالا استفاده می شود فقط نتیجه را نمایش می دهد روی را terminal به جای اعمال تغییرات در فایل متنی: برای آن، باید از گزینه “-i” دستور sed استفاده کنیم. با هر دستور sed می توان از آن استفاده کرد و تغییرات به جای پرینت در فایل اعمال می شود روی را terminal.
نتیجه
ظاهراً دستور sed به عنوان یک ویرایشگر متن معمولی عمل می کند، اما در مقایسه با ویرایشگرهای دیگر، فهرست اقدامات گسترده تری دارد. شما باید فقط یک دستور بنویسید و تغییرات به طور خودکار انجام می شود. این ویژگی علاقه مندان لینوکس و یا کاربرانی که ترجیح می دهند را به خود جلب می کند terminal از طریق رابط کاربری گرافیکی به دنبال ویژگی های سودمند sed. راهنمای ما متمرکز است روی حذف کاراکترهای خاص از فایل متنی اگر فقط این ویژگی دستور sed را با ویرایشگرهای دیگر مقایسه کنیم، باید کاراکترها را در سراسر فایل جستجو کنید و سپس حذف یک به یک آنها خسته کننده است. process. از طرف دیگر، sed با نوشتن یک دستور تک خطی، همین عمل را انجام می دهد روی terminal.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 13:51:06