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

سرور مجازی NVMe

Awk Trim Space

0 5
زمان لازم برای مطالعه: 4 دقیقه


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

فضای خالی چیست؟

فضای سفید فضای بین دو کاراکتر قابل چاپ است. می تواند در یک خط افقی یا خطوط جداکننده عمودی باشد. به عبارت دیگر، فاصله بین کلمات، هر خط خالی، تگ nbsp به همراه برگه ها را می توان به عنوان فضای خالی در نظر گرفت. فضاهای خالی در ابتدا و/یا انتهای خطوط نیز فضای خالی در نظر گرفته می شوند.

به منظور حفظ سلامت داده ها، برنامه نویسان در نهایت کدی را می نویسند که مسئول حذف این فضاهای خالی هنگام ذخیره داده ها است. موارد زیر می تواند باعث حذف فضاهای خالی شود:

  • تغییر فرمت/بازسازی کد منبع
  • پاک کردن داده ها
  • هر کدام را ساده کنید command-line خروجی ها
  • کاهش حجم فایل

اگر تعداد انگشت شماری از داده ها در فایل وجود داشته باشد، می توان به صورت دستی فضاهای خالی را حذف کرد. اما، زمانی که فایل حاوی صدها خط باشد، حذف دستی آنها می تواند بسیار دشوار باشد. برای غلبه بر این، ما می توانیم بسیاری را به کار بگیریم command-line ابزارهایی که در دسترس ما هستند، مانند sed، cut، tr و awk. از این میان، awk فرمان قدرتمندتر است. بیایید آن را بیشتر بررسی کنیم.

پیشنهاد می‌کنیم بخوانید:  حذف کاراکترها از رشته در Bash

Awk چیست؟

Awk یک زبان برنامه نویسی بسیار قدرتمند است که برای دستکاری داده ها و تولید گزارش استفاده می شود. دستور awk مخفف حروف اول هر یک از سه سازنده Aho، Weinberger و Kernighan است. Awk به کاربران خود این امکان را می دهد که متغیرها، رشته ها، توابع عددی و عملگرهای حسابی را تعریف کنند و همچنین گزارش های قالب بندی شده و بسیاری دیگر را ایجاد کنند.

در این مقاله، ما با استفاده از دستور awk برای برش فضاهای خالی فایل‌های شما را بررسی می‌کنیم. پس از مرور راهنما، خواهید دانست که چگونه:

  • تمام فضاهای خالی را در هر فایلی برش دهید.
  • هر دو فضای سفید پیشرو و انتهایی را کوتاه کنید.
  • تمام فضاهای سفید پیشرو را کوتاه کنید.
  • تمام فضاهای سفید انتهایی را کوتاه کنید.
  • چندین فضا را با یک فاصله جایگزین کنید.

سناریوهای نشان داده شده در این مقاله انجام شده است روی سیستم اوبونتو 22.04 Jammy Jellyfish. این دستورات نیز قابل اجرا هستند روی سایر توزیع ها نیز

فایل نمونه

برای این راهنما، ما از یک فایل متنی با نام “asd.txt” استفاده خواهیم کرد. محتویات مکان نگهدار فایل نمونه به شکل زیر است:

Awk Trim Space

حالا بیایید شروع کنیم.

چگونه تمام فضاهای خالی فایل خود را مشاهده کنیم؟

برای درک بهتر فضاهای سفید، ابتدا ببینیم چگونه می توانیم فضاهای سفید را در یک فایل شناسایی کنیم. برای این کار، باید خروجی دستور cat را از طریق دستور tr به این صورت لوله کنید:

$cat asd.txt | tr ” ” “*” | tr “\t” “&”

این دستور فضاها را با ستاره و جاهای زبانه را با علامت جایگزین می کند “&” سمبل. به محض اجرا، می توانید تمام فضاهای خالی فایل خود را به این صورت مشاهده کنید:

Awk Trim SpaceAwk Trim Space

حالا بیایید کاربرد دستور awk را بررسی کنیم.

برش تمام فضاهای سفید

برای اولین سناریوی خود، تمام فضاهای خالی را از فایل نمونه خود حذف می کنیم. برای رسیدن به این هدف، باید خروجی دستور cat را به دستور awk به صورت زیر وارد کنیم:

$ cat asd.txt | awk ‘{gsub(/ /,””); چاپ }’

اینجا:

  • gsub مخفف جایگزینی جهانی است که برای جایگزینی فضاهای سفید استفاده می شود.
  • اسلش های دوبل رو به جلو (/ /) نشان دهنده فضای سفید است.
  • برای کوتاه کردن رشته ها از علامت های نقل قول دوتایی استفاده می شود.
پیشنهاد می‌کنیم بخوانید:  دستور Bash jq

بنابراین، با دستور بالا، همه فضاهای سفید (/ /) را با هیچ (“”) جایگزین می کنیم. با خروجی دستور بالا می بینید که تمام فضاهای خالی حذف شده اند.

Awk Trim SpaceAwk Trim Space

برش دادن فضاهای سفید پیشرو و انتهایی از سند شما

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

$cat asd.txt | awk ‘{gsub(/^[ \t]+|[ \t]+$/، “”); چاپ }’

Awk Trim SpaceAwk Trim Space

با استفاده از عناصر دستور قبلی، می‌توانید تأیید کنید که فضای خالی اصلی و انتهایی حذف شده‌اند.

$cat asd.txt | awk ‘{ sub(/^[ \t]+|[ \t]/، “”)؛ چاپ }’ | tr ” ” “*” | tr “\t” “&”

Awk Trim SpaceAwk Trim Space

در اینجا دستوراتی وجود دارد که می توانید به ترتیب برای حذف این فضاها به طور جداگانه استفاده کنید.

حذف فقط فضاهای سفید پیشرو

$cat asd.txt | awk ‘{ sub(/^[ \t]+/، “”)؛ چاپ }’

حذف فقط فضاهای سفید انتهایی

$cat asd.txt | awk ‘{ sub(/[ \t]+$/، “”); چاپ }’

امتیاز: چندین فضا را با یک فاصله جایگزین کنید

برای جایگزینی چند فاصله با یک یا هیچ، می توانید از دستور awk به این صورت استفاده کنید:

$cat asd.txt | awk ‘{gsub(/[ ]+/””)؛ چاپ }’

Awk Trim SpaceAwk Trim Space

با استفاده از دستور tr می بینیم که فضاهای خالی حذف شده اند.

Awk Trim SpaceAwk Trim Space

نتیجه

بنابراین، با این نمایش‌ها، راه‌های مختلفی را بررسی کرده‌ایم که می‌توانیم از دستور awk برای برش فضاهای سفید استفاده کنیم. حذف آنها به دلایل مختلف می تواند مفید باشد.

اگر در استفاده از آن با مشکلی مواجه شدید، با استفاده از بخش نظرات زیر با ما تماس بگیرید و ما خوشحال خواهیم شد که به شما کمک کنیم.

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

زمان انتشار: 1402-12-29 20:14:04

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

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

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