از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه خطوط خالی را در Grep نادیده بگیرم؟
سرفصلهای مطلب
grep مخفف چاپ بیان منظم جهانی. عملکردهای زیادی دارد، به عنوان مثال، جستجو در یک فایل، جستجوی تنها نام یک فایل، grep به صورت بازگشتی و غیره. grep در هنگام جستجو به عنوان یک دستور قدرتمند در مجموعه دستورات لینوکس در نظر گرفته می شود. در بسیاری از موارد، با موقعیتهایی مواجه میشویم که نیازی به فضا نداریم یا نیاز به حذف شکافهای ناخواسته در دادههایمان وجود دارد. یکی از چالش برانگیزترین راه های استفاده از grep نادیده گرفتن یا حذف خطوط خالی از فایل متنی است. این روش از طریق مثال های مختلف انجام می شود، پس لطفا بخوانید روی در زیر ببینید که چگونه انجام می شود.
نحو
grep [pattern] [filename]
پس از استفاده از grep، یک الگو می آید. این الگو به روشی دلالت دارد که می خواهیم از آن برای حذف فضای اضافی در داده ها استفاده کنیم. به دنبال الگو، نام فایل توصیف می شود که از طریق آن الگو انجام می شود.
پیش نیاز
برای درک آسان مفید بودن grep، باید اوبونتو را نصب کنیم روی سیستم ما مشخصات کاربر را با ارائه نام کاربری و رمز عبور برای داشتن امتیاز در دسترسی به برنامه های لینوکس ارائه دهید. پس از ورود، برنامه را باز کرده و عبارت a را جستجو کنید terminal یا کلید میانبر ctrl+alt+T را اعمال کنید.
با استفاده از [: blank:] کلمه کلیدی
می توانید یک فایل نیز ایجاد کنید روی ویرایشگر متن یا با یک خط فرمان در terminal. برای ایجاد یک فایل روی را terminalاز جمله دستورات زیر.
اگر فایلی از قبل موجود است نیازی به ایجاد آن نیست. فقط با استفاده از دستور الحاقی آن را نمایش دهید:
فرض کنید فایلی به نام bfile داریم که پسوند متنی دارد. متن نوشته شده در این فایل ها مانند شکل زیر حاوی فاصله های بین آنهاست.
من دانش آموز خوبی هستم.
من در کلاس 5 خواندم
من یک برادر و یک خواهر دارم
مادرم خانه دار است
من می خواهم به مدرسه بروم
“
نمایش محتویات فایل مطابق شکل زیر:
این خطوط خالی را می توان با استفاده از دستور خالی حذف کرد تا فضاهای خالی بین کلمات یا رشته ها نادیده گرفته شود.
پس از اعمال پرس و جو، فضاهای خالی بین خطوط حذف می شود و خروجی دیگر حاوی فضای اضافی نخواهد بود. کلمه اول با حذف فاصله بین آخرین کلمه سطر و بین اولین کلمات سطر بعدی برجسته می شود. ما همچنین می توانیم شرایط را اعمال کنیم روی همان دستور grep با افزودن این تابع خالی برای حذف فضای بی فایده در خروجی.
با استفاده از [: space:]
مثال دیگری از نادیده گرفتن فضا در اینجا توضیح داده شده است. ابتدا اجازه دهید فایل متنی خود را ایجاد کنیم روی را terminal:
من خانه دار هستم
من میخوام برنامه نویسی یاد بگیرم
من یک دختر دارم
“
> file20بدون ذکر پسوند فایل، ابتدا فایل موجود را با استفاده از دستور نمایش می دهیم.
بیایید ببینیم که چگونه فضای اضافی با استفاده از دستور grep در کنار آن حذف میشود [: space:] کلمه کلیدی. گزینه –v grep کمک خواهد کرد print خطوطی که فاقد خطوط خالی و فاصله اضافی هستند که در فرم پاراگراف نیز گنجانده شده است.
خواهید دید که خطوط اضافی حذف شده و خروجی از نظر خط به صورت توالی است. به این ترتیب روش grep –v برای دستیابی به هدف مورد نیاز بسیار مفید است.
بیایید مثال دیگری را با فایل داده زیر انجام دهیم:
برای جستجوی نام فایل ها با کمک دستورات استفاده می شود.
ما می توانیم با استفاده از grep man به دفترچه راهنما برویم
“
> fileg.txtخروجی به صورت زیر است:
با اعمال دستور، فایل خروجی ما به دست آمده است. در اینجا، ما می توانیم داده ها را بدون فاصله بین خطوطی که به طور متوالی نوشته می شوند، ببینیم.
علاوه بر دستورات طولانی، میتوانیم با دستورات نوشتاری کوتاه در لینوکس و یونیکس نیز کاراکترهای کوتاهنویسی grep را در آن پیادهسازی کنیم.
ما دیدیم که چگونه با اعمال دستورات از ورودی خروجی بدست می آید. در اینجا، روش حفظ ورودی از خروجی را خواهیم آموخت.
در اینجا ما از یک فایل متنی موقت با پسوند متنی به نام tmp برای انتقال محتوای فیلتر شده به فایل اصلی استفاده خواهیم کرد.
با استفاده از ^#
بیایید یک فایل داده جدید برای آزمایش این نسخه نحوی ایجاد کنیم:
و ساخت کارت ویزیت لوگو
و پوستر و غیره فتوشاپ
و illustrator برای آن استفاده می شود”
> fileb.txtفایل متنی شامل 4 خط در آن است که بین آنها فاصله وجود دارد. این خطوط فاصله به راحتی با استفاده از یک دستور خاص حذف می شوند.
عملیات توسعه یافته منظم توسط –E فعال می شود که به تمام عبارات منظم، به خصوص لوله اجازه می دهد. یک لوله به عنوان یک شرط اختیاری “یا” در هر الگوی استفاده می شود.”^#. این نشان دهنده تطابق خطوط متن در فایلی است که با علامت # شروع می شود. “^$” با تمام فضاهای خالی در متن یا خطوط خالی مطابقت دارد.
خروجی حذف کامل فضای اضافی بین خطوط موجود در فایل داده را نشان می دهد. در این مثال دیدیم که در دستور “^#” اول می آید، به این معنی که ابتدا متن مطابقت دارد. “^$” بعد از | می آید اپراتور، بنابراین فضای آزاد پس از آن مطابقت داده می شود.
با استفاده از ^$
درست مانند مثالی که در بالا ذکر شد، نتایج مشابهی خواهیم داشت زیرا دستور تقریباً یکسان است. با این حال، الگو برعکس نوشته شده است. File22.txt فایلی است که از آن برای حذف فضاها استفاده می کنیم.
یک رشته تحلیلی است
ما می توانیم چیزهای زیادی در آن یاد بگیریم
نوشتن تجاری مقوله نویسندگی آن است
ممنون از یادگیری”
> file22.txtهمین روش بجز کار با اولویت اعمال می شود. طبق این دستور ابتدا فضاهای خالی مطابقت داده می شود سپس فایل های متنی مطابقت داده می شوند. خروجی با حذف شکاف های اضافی در آنها، دنباله ای از خطوط را ارائه می دهد.
سایر دستورات ساده
این هر دو بسیار ساده هستند و به از بین بردن شکاف در خطوط متن کمک می کنند.
نتیجه
حذف شکاف های بی فایده در فایل ها با کمک عبارات منظم یک روش کاملاً آسان برای دستیابی به یک توالی صاف از داده ها و حفظ ثبات است. نمونه ها به صورت مفصل توضیح داده شده اند تا اطلاعات شما در مورد موضوع افزایش یابد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 00:22:03