از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Awk Trim Space
سرفصلهای مطلب
هنگامی که در صنعت فناوری اطلاعات کار می کنید، می توانید با هزاران فایل حاوی خطوط کد یا مقادیر زیادی داده مواجه شوید. اگرچه دادهها خود میتوانند عاملی مؤثر در اندازه فایل باشند، اما فضاهای خالی نیز اندازه را تا حد زیادی ترکیب میکنند. با افزایش حجم فایل، ممکن است هنگام ذخیره این فایل ها یا انتقال آنها به همکاران خود با مشکل مواجه شوید. بنابراین، ضروری است که آنها را حذف کنید تا اندازه فایل را بهتر کنترل کنید، اما ابتدا بیایید نگاهی بیندازیم تا آنها را با جزئیات درک کنیم.
فضای خالی چیست؟
فضای سفید فضای بین دو کاراکتر قابل چاپ است. می تواند در یک خط افقی یا خطوط جداکننده عمودی باشد. به عبارت دیگر، فاصله بین کلمات، هر خط خالی، تگ nbsp به همراه برگه ها را می توان به عنوان فضای خالی در نظر گرفت. فضاهای خالی در ابتدا و/یا انتهای خطوط نیز فضای خالی در نظر گرفته می شوند.
به منظور حفظ سلامت داده ها، برنامه نویسان در نهایت کدی را می نویسند که مسئول حذف این فضاهای خالی هنگام ذخیره داده ها است. موارد زیر می تواند باعث حذف فضاهای خالی شود:
- تغییر فرمت/بازسازی کد منبع
- پاک کردن داده ها
- هر کدام را ساده کنید command-line خروجی ها
- کاهش حجم فایل
اگر تعداد انگشت شماری از داده ها در فایل وجود داشته باشد، می توان به صورت دستی فضاهای خالی را حذف کرد. اما، زمانی که فایل حاوی صدها خط باشد، حذف دستی آنها می تواند بسیار دشوار باشد. برای غلبه بر این، ما می توانیم بسیاری را به کار بگیریم command-line ابزارهایی که در دسترس ما هستند، مانند sed، cut، tr و awk. از این میان، awk فرمان قدرتمندتر است. بیایید آن را بیشتر بررسی کنیم.
Awk چیست؟
Awk یک زبان برنامه نویسی بسیار قدرتمند است که برای دستکاری داده ها و تولید گزارش استفاده می شود. دستور awk مخفف حروف اول هر یک از سه سازنده Aho، Weinberger و Kernighan است. Awk به کاربران خود این امکان را می دهد که متغیرها، رشته ها، توابع عددی و عملگرهای حسابی را تعریف کنند و همچنین گزارش های قالب بندی شده و بسیاری دیگر را ایجاد کنند.
در این مقاله، ما با استفاده از دستور awk برای برش فضاهای خالی فایلهای شما را بررسی میکنیم. پس از مرور راهنما، خواهید دانست که چگونه:
- تمام فضاهای خالی را در هر فایلی برش دهید.
- هر دو فضای سفید پیشرو و انتهایی را کوتاه کنید.
- تمام فضاهای سفید پیشرو را کوتاه کنید.
- تمام فضاهای سفید انتهایی را کوتاه کنید.
- چندین فضا را با یک فاصله جایگزین کنید.
سناریوهای نشان داده شده در این مقاله انجام شده است روی سیستم اوبونتو 22.04 Jammy Jellyfish. این دستورات نیز قابل اجرا هستند روی سایر توزیع ها نیز
فایل نمونه
برای این راهنما، ما از یک فایل متنی با نام “asd.txt” استفاده خواهیم کرد. محتویات مکان نگهدار فایل نمونه به شکل زیر است:
حالا بیایید شروع کنیم.
چگونه تمام فضاهای خالی فایل خود را مشاهده کنیم؟
برای درک بهتر فضاهای سفید، ابتدا ببینیم چگونه می توانیم فضاهای سفید را در یک فایل شناسایی کنیم. برای این کار، باید خروجی دستور cat را از طریق دستور tr به این صورت لوله کنید:
این دستور فضاها را با ستاره و جاهای زبانه را با علامت جایگزین می کند “&” سمبل. به محض اجرا، می توانید تمام فضاهای خالی فایل خود را به این صورت مشاهده کنید:
حالا بیایید کاربرد دستور awk را بررسی کنیم.
برش تمام فضاهای سفید
برای اولین سناریوی خود، تمام فضاهای خالی را از فایل نمونه خود حذف می کنیم. برای رسیدن به این هدف، باید خروجی دستور cat را به دستور awk به صورت زیر وارد کنیم:
اینجا:
- gsub مخفف جایگزینی جهانی است که برای جایگزینی فضاهای سفید استفاده می شود.
- اسلش های دوبل رو به جلو (/ /) نشان دهنده فضای سفید است.
- برای کوتاه کردن رشته ها از علامت های نقل قول دوتایی استفاده می شود.
بنابراین، با دستور بالا، همه فضاهای سفید (/ /) را با هیچ (“”) جایگزین می کنیم. با خروجی دستور بالا می بینید که تمام فضاهای خالی حذف شده اند.
برش دادن فضاهای سفید پیشرو و انتهایی از سند شما
از آخرین خروجی، می بینیم که فضاهای خالی حذف شده اند و برگه ها و خطوط خالی باقی می مانند. میتوانیم دستور استفاده شده در آخرین مثال را برای مراقبت از فضاهای سفید پیشرو و انتهایی همراه با تبها بهروزرسانی کنیم:
با استفاده از عناصر دستور قبلی، میتوانید تأیید کنید که فضای خالی اصلی و انتهایی حذف شدهاند.
در اینجا دستوراتی وجود دارد که می توانید به ترتیب برای حذف این فضاها به طور جداگانه استفاده کنید.
حذف فقط فضاهای سفید پیشرو
حذف فقط فضاهای سفید انتهایی
امتیاز: چندین فضا را با یک فاصله جایگزین کنید
برای جایگزینی چند فاصله با یک یا هیچ، می توانید از دستور awk به این صورت استفاده کنید:
با استفاده از دستور tr می بینیم که فضاهای خالی حذف شده اند.
نتیجه
بنابراین، با این نمایشها، راههای مختلفی را بررسی کردهایم که میتوانیم از دستور awk برای برش فضاهای سفید استفاده کنیم. حذف آنها به دلایل مختلف می تواند مفید باشد.
اگر در استفاده از آن با مشکلی مواجه شدید، با استفاده از بخش نظرات زیر با ما تماس بگیرید و ما خوشحال خواهیم شد که به شما کمک کنیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 20:14:04