از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Sed Remove Space
سرفصلهای مطلب
حذف فضاهای خالی در اسناد یک مرحله قالب بندی ضروری است که برای بهبود طرح کلی متن و اطمینان از تمیز و مرتب بودن داده ها لازم است. این کمک می کند تا فقط داده های مورد نیاز را ذخیره کنید و از شر فضاهای پیشرو و دنباله دار غیر ضروری خلاص شوید. در زیر چند سناریو وجود دارد که ممکن است نیاز به حذف فضاهای خالی داشته باشید:
- برای فرمت مجدد کد منبع
- برای پاکسازی داده ها
- برای ساده سازی command-line خروجی
اگر در مورد فضاهای سفید پیشرو صحبت کنیم، تشخیص آنها نسبتاً آسان است زیرا در ابتدای متن هستند. با این حال، تشخیص فضاهای سفید دنباله دار آسان نیست. در مورد فضاهای دوتایی نیز که گاهی اوقات به سختی قابل تشخیص است نیز همینطور است. همه چیز زمانی چالش برانگیزتر می شود که شما نیاز به حذف تمام آن فضاهای سفید پیشرو و انتهایی از یک سند حاوی هزاران خط داشته باشید.
برای حذف فضاهای خالی از سند خود می توانید از ابزارهای مختلفی مانند awk، sed، cut و tr استفاده کنید. در برخی مقالات دیگر به استفاده از awk در حذف فضاهای سفید پرداخته ایم. در این مقاله، استفاده از sed برای حذف فضاهای خالی از داده ها را مورد بحث قرار خواهیم داد.
شما یاد خواهید گرفت که چگونه از sed استفاده کنید:
- تمام فضاهای سفید را حذف کنید
- فاصله های سفید پیشرو را حذف کنید
- فضاهای خالی انتهایی را حذف کنید
- هر دو فضای سفید پیشرو و انتهایی را حذف کنید
- فضاهای چندگانه را با تک فضایی جایگزین کنید
ما دستورات را اجرا خواهیم کرد روی Ubuntu 20.04 Focal Fossa. شما همچنین می توانید همان دستورات را اجرا کنید روی سایر توزیع های لینوکس ما از برنامه پیش فرض اوبونتو ترمینال برای اجرای دستورات استفاده خواهیم کرد. برای باز کردن ترمینال، از میانبر صفحه کلید Ctrl+Alt+T استفاده کنید.
سید چیست
Sed (مخفف ویرایشگر جریان) یک ابزار بسیار قدرتمند و مفید در لینوکس است که به ما امکان می دهد دستکاری های متنی اولیه را انجام دهیم. روی جریان های ورودی این یک ویرایشگر متن نیست، اما به دستکاری و فیلتر کردن متن کمک می کند. جریان های ورودی را دریافت می کند و طبق دستورالعمل کاربر ویرایش می کند و سپس print متن تبدیل شده به صفحه نمایش
با sed می توانید:
- متن را انتخاب کنید
- جستجوی متن
- درج متن
- متن را جایگزین کنید
- متن را حذف کنید
استفاده از Sed برای حذف فضاهای سفید
برای حذف فضاهای خالی از متن از دستور زیر استفاده خواهیم کرد:
جایی که
- s/: است بیان جایگزینی
- REGEXP: یک عبارت منظم برای مطابقت است
- جایگزینی: رشته جایگزین است
- پرچم ها: ما فقط از پرچم “g” برای فعال کردن جایگزینی در سطح جهانی استفاده خواهیم کرد روی هر خط
عبارات با قاعده
برخی از عبارات منظم که در اینجا استفاده خواهیم کرد عبارتند از:
- ^ مسابقات شروع خط
- $ مسابقات انتهای خط
- + با یک یا چند مورد از کاراکتر قبلی مطابقت دارد
- * با صفر یا چند مورد از کاراکتر قبلی مطابقت دارد.
برای نمایش، از فایل نمونه زیر با نام testfile استفاده می کنیم.
مشاهده تمام فضاهای سفید در یک فایل
برای پیدا کردن تمام فضاهای خالی در فایل خود، خروجی دستور cat را به دستور tr به صورت زیر وارد کنید:
این دستور جایگزین تمام فضاهای خالی فایل شما می شود
نماد، که تشخیص تمام فضاهای سفید را آسان تر می کند، چه فضاهای سفید تک، چندگانه، پیشرو یا انتهایی باشند.
فایل نمونه با تمام فاصله ها و برگه ها
حذف تمام فضاهای سفید (شامل فاصله ها و برگه ها)
g توجه داشته باشید:
Sed فایل های شما را تغییر نمی دهد مگر اینکه خروجی را در فایل ذخیره کنید.
خروجی:
پس از اجرای دستور بالا خروجی زیر ظاهر می شود که نشان می دهد تمام فضاهای خالی از متن حذف شده است.
“&”
از خروجی، می توانید ببینید که خیر
-r
‘2s/\s+//g’
‘s/^
*//’
خروجی:
“
“&”
sed
‘2s/^
sed
‘s/
*$//’
\ t
“
|
sed
sed
‘s/^
*//;s/
“
\ t
|
sed
‘2s/^
فایل آزمایشی
|
sed
tr
“
\ t””&”از خروجی، می توانید تک آهنگ را ببینیدنماد در هر مکان که تأیید می کند که همه رخدادهای چند فضای سفید با یک فضای سفید منفرد جایگزین شده اند. بنابراین، این همه در مورد حذف فضاهای خالی از داده های خود با استفاده از sed بود. در این مقاله، شما یاد گرفتید که چگونه از sed برای حذف تمام فضاهای سفید از داده های خود استفاده کنید، فقط فضای خالی اصلی یا انتهایی را حذف کنید و هر دو فضای سفید پیشرو و انتهایی را حذف کنید. شما همچنین یاد گرفته اید که چگونه چند فضا را با یک فضای واحد جایگزین کنید. اکنون حذف فضاهای خالی از یک فایل حاوی صدها یا هزاران خط برای شما آسان خواهد بود.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 10:50:04