از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash: هنگام خواندن خط
سرفصلهای مطلب
وقتی کار میکنی روی bash اسکریپت، گاهی اوقات ممکن است لازم باشد یک فایل را خط به خط بخوانید. با یک مثال توضیح می دهیم. شما مقداری داده در یک فایل متنی دارید که باید با استفاده از یک اسکریپت اجرا یا پردازش شوند. بنابراین، در حال اجرا a bash اسکریپت به process یک فایل متنی بسیار متفاوت است. برای خواندن خط به خط یک فایل، باید یک نحو مشخص را دنبال کنید. این مقاله به شما کمک می کند تا با استفاده از حلقه while در Bash یک خط از یک فایل را بخوانید.
نحو اولیه خط while read
از دستور زیر استفاده می شود bash پوسته برای خواندن فایل با استفاده از حلقه while:
انجام دادن
echo “خط $“ ;
انجام شده < فایل ورودی
گزینه ‘-r’ در نحو ذکر شده در بالا به دستور خواندن منتقل می شود که از تفسیر بک اسلش جلوگیری می کند. گزینه “input_file” نام فایل شما را نشان می دهد که می خواهید با استفاده از دستور “خواندن” به آن دسترسی داشته باشید.
جداکننده میدان داخلی به اختصار IFS می توان قبل از تنظیم شدن دستور خواندن روی رشته تهی استفاده کرد که از بریده شدن فضای سفید پیشرو یا انتهایی جلوگیری می کند.
انجام دادن
echo خط $;
انجام شده < فایل ورودی
باز کن terminal استفاده کردن ‘Ctrl + Alt + t’ میانبر کنید و سپس دستورات زیر را اجرا کنید روی آی تی.
مثال شماره 1: خواندن فایل خط به خط
بیایید مثالی بزنیم که در آن فرض کنید فایلی به نام داریم “OS.txt” حاوی نام تمام توزیع های مهم لینوکس است. اگر می خواهید یک فایل را بدون استفاده از ‘گربه’ سپس برای این منظور می توانید دستور زیر را برای انجام وظیفه خاص اجرا کنید. ما از حلقه while استفاده خواهیم کرد که هر خط از فایل را می خواند “OS.txt” و محتوا را در هر مرحله در متغیر $line ذخیره می کند که می توانید بعداً نمایش دهید.
نام توزیعهای لینوکس زیر را در آن جایگذاری کنید “OS.txt”
اوبونتو
دبیان
لینوکس مینت
انجام دادن
echo خط $;
انجام شده < OS.txt
از دستور بالا، پاسخ زیر را دریافت خواهید کرد روی را terminal پنجره:
مثال شماره 2: خواندن فایل با استفاده از bash اسکریپت
ایجاد یک bash برای خواندن محتوای فایل کد زیر را در این فایل اضافه کنید. می توانید فایل متنی قبلی را در یک متغیر جدید ذخیره کنید $filename و متغیر $n برای حفظ مقدار هر خط استفاده می شود. اکنون با استفاده از حلقه while هر خط را از یک فایل با شماره خط خاص می خوانیم.
نام فایل=“OS.txt”
n=1
در حالی که خواندن خط
انجام دادن
# برای خواندن هر خط
echo خط توزیع سیستم عامل شماره $n : خط $“
n=$((n+1))
انجام شده < $filename
فایل را با نام ذخیره کنید ‘OSinfo.sh’ و دستور زیر را تایپ کنید روی را terminal برای اجرای موارد بالا bash اسکریپت
اکنون دستور cat را اجرا کنید تا محتوای فایل اصلی را مشاهده کنید.
روش جایگزین برای خواندن فایل
استفاده از عبور نام فایل از یک دستور
در یک bash فایل، باید اسکریپت کد زیر را اضافه کنید. در این اسکریپت باید یک نام فایل را به عنوان آرگومان در نظر بگیریم. ابتدا مقدار یک آرگومان توسط a خوانده می شود 1 دلار متغیری که یک نام فایل برای خواندن دارد. بررسی میکند که نام فایل در مکان مشخصشده وجود داشته باشد، سپس با استفاده از حلقه while یک فایل را خط به خط شبیه به مثال قبلی میخواند.
نام فایل=1 دلار
اگر [[ ! -f $filename ]] ; سپس
echo “خطا، باید نام فایل را به عنوان پارامتر خط فرمان وارد کنید”
خروج
فی
در حالی که خواندن خط انجام دادن
# خواندن هر خط
echo خط $
انجام شده < $filename
اسکریپت بالا را با named ذخیره کنید “Readline.sh” و دستور زیر را اجرا کنید روی را terminal برای اجرای اسکریپت فوق:
می توانید ببینید که پارامتر به عنوان استفاده شده است $filename، و خط به خط را با علامت بخوانید هنگام خواندن خط نحو از پارامتر ارائه شده روی خط فرمان
نتیجه
در این مقاله روش خواندن خطوط با استفاده از حلقه while را مورد بحث قرار داده ایم bash برنامه نویسی. ما روش های مختلفی را با استفاده از bash اسکریپت یا میتوانید به سادگی از یک فایل متنی برای خواندن خط به خط یک فایل استفاده کنید. اگر علاقه مند به یادگیری مثال های بیشتر هستید، می توانید با استفاده از نحو ذکر شده در بالا، آن را اجرا کنید روی سیستم شما نیز امیدوارم از این آموزش لذت برده باشید و برای شما بی نظیر باشد. در صورت بروز هرگونه خطایی اطلاع رسانی کنیم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 10:03:04