از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه خطوط را با استفاده از دستور SED از یک فایل حذف کنم؟
سرفصلهای مطلب
دستور sed به عنوان ویرایشگر جریان شناخته می شود. دستور sed در لینوکس برای تبدیل متن اصلی استفاده می شود.
یکی از بسیاری از دستورات ضروری لینوکس نیز دستور sed است که نقشی حیاتی در دستکاری فایل ها ایفا می کند. این برای اهداف بسیاری استفاده می شود؛ برخی از اصلی ترین آنها به شرح زیر است.
آن خط خاص را که با الگوهای داده شده مطابقت دارد حذف یا حذف کنید.
- حذف خطوط با عبارات منظم.
- مستقر روی موقعیت یک فایل، یک خط خاص را حذف کنید.
بنابراین، اگر به فکر حذف خطوط از یک فایل با استفاده از دستور sed هستید، لطفا مقاله ما را از ابتدا تا انتها بخوانید. مختصری به شما می دهیم روی روش های حذف خطوط
چگونه با استفاده از دستور SED خطوط را از یک فایل حذف کنم؟
ما در این مقاله از دستور sed بدون -i استفاده خواهیم کرد زیرا یک مقاله نمایشی است. روش مشابهی گزینه “dry run” است که تمام مقادیر فایل را بدون ایجاد تغییر نشان می دهد.
با استفاده از دستور sed می توانیم خطوط را بسته به آن حذف کنیم روی محیط با استفاده از -i.
برای نمایش دستور sed فایلی به نام LinuxhintOS.txt ایجاد می کنیم. برای اطلاع رسانی بهتر این شماره خطوط را در مطالب زیر قرار می دهیم.
حذف خطوط از یک فایل مبتنی بر روی موقعیت
این بخش با استفاده از دستور sed برای حذف خطوط از فایل مبتنی بر “LinuxhintOS.txt” توضیح می دهد. روی موقعیت آن
ابتدا با استفاده از دستور زیر فایل را باز کنید:
حالا دستور زیر را برای حذف خط اول اجرا کنید:
در دستور بالا:
ن– خط N ام در یک فایل
D– حذف فایل
بنابراین، اجازه دهید این دستور را در مثال خود اجرا کنیم تا خط دهم را از فایل متنی حذف کنیم:
sed ’10d’ LinuxhintOS.txt
آخرین خط را از یک فایل حذف کنید
اگر مجبور باشیم آخرین خط را از فایل حذف کنیم، به جای ‘N’ در نحو استفاده شده در بالا، از ‘$’ استفاده می کنیم. در اینجا $ نشان دهنده آخرین خط است.
پس از این، فایل ما به چیزی شبیه به این تغییر می کند.
خط اول و آخرین خط را با هم حذف کنید
اگر بخواهیم خط اول و آخر را حذف کنیم باید دو دستور بالا را با هم ترکیب کنیم.
با این دستور هر دو خط اول و آخر ما به طور همزمان از فایل حذف می شوند.
همانطور که در تصویر بالا مشاهده می کنید خط اول و آخر از فایل متنی حذف شده است.
محدوده ای از خطوط را حذف کنید
دستور sed می تواند خطوط هر محدوده ای را حذف کند. برای این، ما فقط باید شماره خطوط “حداقل” و “حداکثر” را وارد کنیم.
در این مثال، خطوطی از 4 تا 7 را حذف می کنیم.
پس از حذف این محدوده از خطوط، فایل ما به این شکل خواهد بود.
چند خط را حذف کنید
sed همچنین می تواند چندین خط را در یک مجموعه حذف کند. همانطور که می بینید در این مثال سطرهای سوم، ششم، هشتم و آخر را حذف کردیم.
هنگام اعمال دستور sed نوشته شده در بالا، تغییرات زیر در فایل ما ‘LinuxhintOS.txt’ رخ می دهد.
حذف خطوطی غیر از خط مشخص شده یا محدوده مشخص شده خطوط
از طریق دستور sed آن خطوطی را از فایل هایی که در دستور تعریف نشده اند حذف می کنیم، یعنی خطوطی غیر از مواردی که توضیح داده شده حذف می شوند.
از این فایل، بقیه خطوط را جدا از اعداد 4 تا 7 حذف می کنیم.
در اینجا، علامت “!” نشان می دهد که ما نباید خط این شماره خاص را از فایل حذف کنیم.
! – برای حفظ تعداد مشخصی از خطوط از فایل استفاده می شود
پس از این، فایل ما چیزی شبیه به این خواهد شد:
خطوط خالی یا خالی را حذف کنید
دستور sed که در زیر نوشته شده است خطوط خالی یا خالی را از فایل مناسب حذف می کند.
از آنجایی که هیچ خط خالی یا خالی در فایل ما وجود ندارد، هیچ تغییری رخ نداده است:
خطوط را از فایل بر اساس الگو حذف کنید
در قسمت دوم خواهیم دید که به کمک دستور sed چگونه خطوط یک الگوی مشابه را حذف می کنیم.
حذف خطوطی که حاوی الگو هستند
در مثال، دستور زیر خطوط مطابق با الگوی “System” را از فایل “LinuxhintOS.txt” حذف می کند.
بنابراین، ما باید آن خطوطی را که دارای “در دسترس نیستند” حذف کنیم. به همین دلیل دستور زیر را اجرا می کنیم:
حذف خطوطی که شامل یک یا چند رشته هستند
از طریق دستور sed، میتوانیم خطوط مطابق با الگوی «بهروزرسانی نشده» یا «در دسترس نیست» را از فایل «LinuxhintOS.txt» حذف کنیم و این دستور چیزی شبیه به این است:
حذف خطوطی که با یک کاراکتر خاص شروع می شوند
ما می توانیم تمام خطوطی که با هر کاراکتری شروع می شوند را از طریق دستور sed حذف کنیم. ما یک فایل جدید به نام ‘LinuxhintOS.txt’ با محتوای زیر ایجاد کرده ایم:
دستور sed زیر تمام خطوطی را که با کاراکتر A شروع می شوند حذف می کند.
ما چنین خطوطی را از فایل خود حذف می کنیم که با ‘A’ و ‘L’ شروع می شوند. که برای آن از دستور زیر استفاده خواهیم کرد.
با استفاده از sed، تمام خطوطی که با “A” شروع می شوند و با رشته “Linux” ختم می شوند را حذف می کنیم.
حذف خطوطی که به یک کاراکتر مشخص ختم می شوند
این دستور sed تمام خطوطی که با “m” ختم می شوند را حذف می کند.
دستور sed زیر خطوطی را که به هر دو کاراکتر «M» و «X» ختم میشوند حذف میکند.
خطوط نویسههایی که به «M» و «X» ختم میشوند از فایل ما حذف میشوند. سپس فایل ما به این شکل خواهد بود.
حذف تمام خطوطی که با حروف بزرگ شروع می شوند
همه آن خطوط را با استفاده از دستور زیر از فایل حذف می کنیم: یک حرف بزرگ.
پس از اعمال دستور بالا، تمام خطوط فایل ما که با حروف بزرگ شروع شده اند حذف می شوند و تغییر در فایل ما به این صورت خواهد بود.
حذف یک خط الگوی منطبق با یک محدوده مشخص
به کمک دستور زیر فقط آن خطوط را از برخی خطوط تعریف شده با یک الگوی خاص حذف می کنیم.
این مثال فقط خطوط با الگوهای لینوکس را از فایل بین 1 تا 6 خط حذف می کند.
پس از اعمال دستور، فایل ما ‘sed – demo-1.txt’ چیزی شبیه به این خواهد شد.
سطر دوم را فقط در صورتی با دستور sed حذف می کنیم که حاوی الگوی openSUSE باشد.
دستور مناسب خط دوم را از فایل ما ‘sed – demo-1.txt’ حذف می کند زیرا دارای الگوی خاصی از “openSUSE” است.
دستور مناسب خط دوم را از فایل ما ‘sed – demo-1.txt’ حذف می کند زیرا دارای الگوی خاصی از “openSUSE” است.
همچنین میتوانیم خطی را که با الگوی سیستم و خط زیر در فایل مطابقت دارد با استفاده از دستور sed حذف کنیم.
خطوط دارای الگوهای خاص را حذف کنید
شما می توانید تمام خطوط زیر را حذف کنیدCentOS” الگو با استفاده از دستور sed.
حذف خطوطی که حاوی اعداد / ارقام هستند
با دستور sed که در زیر نوشته شده است، می توانیم تمام خطوط حاوی “digit” را حذف کنیم.
با ایجاد تغییراتی در دستور sed، تمام خطوطی که فقط با ارقام شروع می شوند را از فایل حذف می کنیم.
بعد از این دستور تمام خطوطی که با رقم شروع می شوند از فایل ما حذف می شوند.
مجدداً با ایجاد تغییراتی در دستور، فقط آن خطوطی را از فایل حذف می کنیم که به یک رقم ختم می شود.
حذف خطوط حاوی حروف الفبا از یک فایل
با دستور sed، تمام خطوط فایل ‘LinuxhintOS.txt’ را که حاوی هر کاراکتر الفبایی هستند، حذف می کنیم.
نتیجه
این مقاله چندین نمونه از حذف خطوط از یک فایل با استفاده از دستور sed را نشان می دهد. می بینیم که چگونه با کمک دستور sed می توانیم به راحتی هر خطی را از فایل ها حذف کنیم. اگر این دستورات را به خاطر بسپاریم، در زمان کاهش مقدار زیادی صرفه جویی می کنیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 11:53:04