از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash برای هر خط در یک فایل
سرفصلهای مطلب
حلقه “For” در Bash را می توان با تغییرات مختلف برای انجام چندین کار استفاده کرد. یکی از این تغییرات “برای هر خط در فایل” است که مسئول خواندن تمام خطوط یک فایل است. در این مقاله در مورد روش های استفاده از “برای هر خط در فایل” در Bash صحبت خواهیم کرد.
توجه: روش های نشان داده شده در زیر نشان داده شده است روی اوبونتو 20.04. با این حال، آنها همچنین با هر توزیع لینوکس دیگر به خوبی کار خواهند کرد.
روشهای استفاده از «برای هر خط در فایل» در Bash:
در این روشها، نمونهای را به شما نشان میدهیم که در آن میتوانید هر خط را از یک فایل بخوانید و سپس میتوانید آن را نمایش دهید. روی را terminal یا حتی می توانید این خطوط را در فایل دیگری ذخیره کنید. اجازه دهید نگاهی به هر دوی این روش ها بیندازیم.
روش شماره 1: برای نمایش خطوط خوانده شده روی پایانه:
برای نمایش خطوط یک فایل روی را terminal با استفاده از “برای هر خط در فایل”، باید مراحل زیر را انجام دهید:
مرحله 1: ایجاد یک فایل متنی ساختگی:
اول از همه، شما باید یک فایل متنی با داده های تصادفی برای نمایش ایجاد کنید. اگرچه، این فایل متنی را می توان در هر جایی ایجاد کرد، با این حال، به شدت توصیه می شود که آن را در پوشه Home ایجاد کنید. برای انجام آن، کلیک کنید روی نماد File Manager که در تصویر زیر مشخص شده است:
اکنون در هر نقطه از پوشه Home خود راست کلیک کرده و از منوی ظاهر شده گزینه New Document را انتخاب کنید. سپس گزینه Empty Document را انتخاب کنید. هنگامی که یک سند خالی در پوشه Home شما ایجاد شد، نام مورد نظر خود را برای آن و سپس پسوند txt. وارد کنید. در این مثال ما آن را ForEachLine.txt نام گذاری کرده ایم.
دوبار کلیک کنید روی این فایل متنی را باز کنید و سپس هر متن تصادفی را مانند تصویر زیر در آن تایپ کنید. پس از انجام این کار، این فایل را ذخیره کرده و ببندید.
مرحله 2: ایجاد اسکریپت Bash:
اکنون یک فایل Bash را به همان روشی که فایل متنی را در پوشه Home ایجاد کرده اید ایجاد کنید، با این تفاوت که این بار، باید نام آن را به جای پسوند txt پسوند .sh ارائه دهید. ما فایل Bash خود را ForEachLine.sh نامگذاری کردهایم، اما شما میتوانید هر نام دلخواه خود را به آن بدهید.
این فایل را با دوبار کلیک باز کنید روی آن را بنویسید و سپس اسکریپت نشان داده شده در تصویر زیر را در فایل Bash تازه ایجاد شده خود تایپ کنید. در اینجا، خط اول وجود دارد که نشان می دهد اسکریپت زیر یک اسکریپت Bash است. ما به سادگی یک متغیر به نام “File” ایجاد کرده ایم و نام فایل متنی خود را به عنوان مقدار آن، یعنی ForEachLine.txt به آن اختصاص داده ایم. سپس یک متغیر به نام “Lines” ایجاد کرده و آن را با “$(cat $File)” برابر کردیم. در اینجا دستور cat محتویات فایل متنی ما را می خواند و زمانی که قبل از آن علامت “$” قرار گیرد، محتوای خوانده شده توسط این دستور در متغیر Lines ذخیره می شود. به این ترتیب تمام خطوط فایل با نام ForEachLine.txt در متغیر Lines ذخیره می شود. سپس حلقه “For” را اعمال کرده ایم که دارای یک تکرار کننده “خط” است. این تکرار کننده کار می کند روی متغیر “Lines” که در بالا ایجاد کرده ایم و در تمام خطوط یک به یک تکرار می شود. سپس در بلوک «انجام شد»، به سادگی تمام این خطوط را نمایش داده ایم روی را terminal با استفاده از echo فرمان
مرحله 3: اجرای اسکریپت Bash:
حالا راه اندازی کنید terminal در اوبونتو 20.04 و سپس دستور زیر را در آن اجرا کنید تا اسکریپت Bash ایجاد شده در بالا را اجرا کنید:
bash ForEachLine.sh
زمانی که این دستور باعث می شود bash اسکریپت را اجرا کنید، سپس می توانید تمام خطوط فایل متنی خود را ببینید روی شما terminal همانطور که در تصویر زیر نشان داده شده است:
روش شماره 2: برای ذخیره تمام خطوط خوانده شده در یک فایل دیگر:
در این روش، ما اسکریپت Bash ایجاد شده در روش بالا را برای ذخیره تمام خطوط خوانده شده در یک فایل متنی جدید به جای نمایش آنها، کمی تغییر داده ایم. روی را terminal. برای انجام این کار مراحل ذکر شده در زیر را انجام دهید:
مرحله 1: تغییر اسکریپت Bash ایجاد شده در بالا و اجرای آن:
اسکریپت Bash را که در روش بالا ایجاد کرده اید باز کنید و آن را مطابق تصویر زیر تغییر دهید. ما به سادگی نماد ”>>” را اضافه کرده ایم و پس از آن یک نام فایل جدید اضافه کرده ایم echo دستور در بلوک “انجام شد”. این اصلاح تمام خطوط خوانده شده را به جای نمایش در یک فایل متنی جدید ذخیره می کند روی را terminal. اکنون اسکریپت Bash را دوباره از طریق terminal با bash دستور به دنبال نام فایل Bash. این بار که اسکریپت Bash اجرا می شود، یک فایل متنی جدید ایجاد می کند که نام آن در این مورد NewFile.txt است.
مرحله شماره 2: دسترسی به فایل متنی ایجاد شده جدید:
برای بررسی اینکه آیا تمام خطوط “خواندن” در فایل متنی جدید ذخیره شده اند، می توانید به سادگی محتویات آن فایل را با اجرای دستور زیر در فایل متنی خود مشاهده کنید. terminal:
گربه NewFile.txt
خروجی نشان داده شده در تصویر زیر به شما اطمینان می دهد که تمام خطوط خوانده شده در فایل متنی جدید کپی شده است.
نتیجه:
به این ترتیب، میتوانید از «برای هر خط در فایل» برای خواندن تمام خطوط یک فایل و سپس دستکاری آن با این خطوط استفاده کنید. ما به تازگی در مورد دو سناریو اساسی در این مقاله صحبت کرده ایم، با این حال، شما حتی می توانید از این حلقه برای مشکلات پیچیده تر استفاده کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 08:56:03