از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
عملیات پیشرفته فایل Bash
سرفصلهای مطلب
فهرست مطالب:
- یک فایل جدید ایجاد کنید
- وجود یک فایل را بررسی کنید
- یک فایل را با استفاده از حلقه “For” بخوانید
- یک فایل را با استفاده از حلقه “While” بخوانید
- اندازه یک فایل را محاسبه کنید
- محتوا را به یک فایل اضافه کنید
- یک کپی از یک فایل تهیه کنید
- مکان فایل را جابجا کنید
- تعداد کل خطوط فایل را بشمارید
- جستجوی محتوا در یک فایل
- با استفاده از Regex محتوای یک فایل را جستجو و جایگزین کنید
- حذف یک فایل
یک فایل جدید ایجاد کنید
چندین راه در Bash برای ایجاد یک فایل جدید در Bash وجود دارد. فایل های جدید را می توان از terminal با استفاده از انواع مختلف ویرایشگرهای متن و رابط کاربری گرافیکی. روش ایجاد یک فایل جدید از terminal با استفاده از Bash “cat” و “echoدستورات ” در این قسمت از آموزش نشان داده شده است. سپس، ایجاد فایل با استفاده از ویرایشگر نانو نشان داده می شود.
برای ایجاد یک فایل متنی با نام “courses.txt” دستور زیر را اجرا کنید:
محتوای زیر را در قسمت تایپ کنید terminal:
CSE-106 برنامه نویسی شی گرا
CSE-208 برنامه نویسی بصری
CSE-303 DBMS پیشرفته
CSE-407 برنامه نویسی یونیکس
Ctrl+d را فشار دهید تا نوشتن متوقف شود و به خط فرمان بروید.
اکنون دستور زیر را برای بررسی محتوای فایل اجرا کنید:
برای ایجاد فایلی از یک متن ساده دستور زیر را اجرا کنید:
سپس دستور «cat» را اجرا کنید تا محتوای فایل «text.txt» را بررسی کنید.
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود:
دستور زیر را اجرا کنید تا ویرایشگر نانو را برای ایجاد یک فایل متنی با نام “course-teacher.txt” باز کنید:
محتوای زیر را در ویرایشگر تایپ کنید:
CSE-208 سایما اکتر
CSE-303 محمودا فردوس
CSE-407 سابرینا سلطانا
برای ذخیره و خروج از ویرایشگر، “Ctrl+x” را فشار دهید.
برای بررسی محتوای فایل دستور زیر را اجرا کنید:
وجود یک فایل را بررسی کنید
از گزینه “-f” برای بررسی وجود فایل معمولی و از گزینه “-s” برای بررسی وجود فایل غیر خالی استفاده می شود. اگر فایل وجود داشته باشد و حاوی یک داده باشد، پیامی چاپ می شود که به اطلاع می رساند که فایل وجود دارد و حاوی داده است. در غیر این صورت پیامی مبنی بر خالی بودن یا نبودن فایل چاپ می شود.
خواندن -پ “نام فایل موجود را وارد کنید:” fn
# بررسی کنید که آیا فایل با داده وجود دارد یا خیر
اگر [ -f “$fn“ ]
سپس
اگر [ -s “$fn“ ]
سپس
در صورت خالی نبودن فایل پیامی را #چاپ کنید
echo “$fn فایل وجود دارد و حاوی داده است.”
دیگر
در صورت خالی بودن فایل پیامی را #چاپ کنید
echo “$fn فایل خالی است.”
فی
دیگر
در صورت نبود فایل پیامی #چاپ کنید
echo “$fn فایل موجود نیست.”
فی
فایل “courses.txt” قبلا ایجاد شده است که حاوی داده ها است. بنابراین، اگر اسکریپت با نام فایل “courses.txt” اجرا شود، خروجی زیر ظاهر می شود:
با توجه به خروجی زیر، فایل “t.txt” وجود دارد و فایل خالی است:
با توجه به خروجی زیر، فایل “course.txt” در مکان فعلی وجود ندارد:
یک فایل را با استفاده از حلقه “For” بخوانید
هر فایل موجود را می توان با استفاده از حلقه های مختلف در Bash خواند. اسکریپت زیر استفاده از حلقه “for” را برای خواندن محتوای یک فایل نشان می دهد که در آن نام فایل به عنوان command-line مقدار آرگومان متغیر IFS در اسکریپت برای شناسایی خط جدید فایل استفاده می شود. دستور “cat” در داخل حلقه “for” برای خواندن محتوای فایل خط به خط استفاده می شود. از متغیر “$counter” استفاده می شود print شماره خط با هر خط از فایل.
#initialize نام فایل از command-line بحث و جدل
fn=1 دلار
شمارنده #آغازی کنید
پیشخوان=1
#جداکننده میدان داخلی را تنظیم کنید
IFS=$‘\n’
#فایل را خط به خط بخوانید
برای val که در $(گربه “$fn“)
انجام دادن
#هر خط از فایل را با شماره خط چاپ کنید
echo “خط-شمارنده $: $val“
شمارنده را #افزایش دهید
((شمارنده ++))
انجام شده
با توجه به خروجی، دستور “cat” برای بررسی محتوای اصلی فایل “courses.txt” قبل از اجرای اسکریپت استفاده می شود. سپس، اسکریپت با دادن “courses.txt” به عنوان اولین مورد اجرا می شود command-line مقدار آرگومان
یک فایل را با استفاده از حلقه “While” بخوانید
اسکریپت زیر استفاده از حلقه “while” را برای خواندن محتوای یک فایل نشان می دهد که در آن نام فایل به عنوان command-line مقدار آرگومان متغیر “$counter” در این اسکریپت نیز استفاده می شود print شماره خط با هر خط از فایل.
شمارنده را #راهاندازی کنید
پیشخوان=1
حلقه را تکرار کنید تا فایل را خط به خط بخوانید
در حالی که خواندن -r خط
انجام دادن
#هر خط را با شماره خط چاپ کنید
echo “خط-شمارنده $: خط $“
شمارنده را #افزایش دهید
((شمارنده ++))
#نام فایل را از قسمت بخوانید command-line بحث و جدل
انجام شده < “$1”
خروجی اسکریپت ارائه شده مشابه مثال قبلی است.
اندازه یک فایل را محاسبه کنید
اندازه فایل را می توان به روش های مختلف با استفاده از اسکریپت Bash محاسبه کرد. در اسکریپت زیر از دستور “stat” با گزینه “-c” برای محاسبه حجم فایل بر حسب بایت استفاده می شود. نام فایل از کاربر گرفته شده است. اندازه فایل در صورت وجود و خالی بودن فایل چاپ می شود. در غیر این صورت پیغام خطا چاپ می شود.
#نام فایل را از کاربر بگیرید
خواندن -پ “نام فایل موجود را وارد کنید:” fn
اگر [ -s $fn ]
سپس
# حجم فایل را بشمارید
اندازه=$(آمار -ج %س $fn)
#اندازه فایل را بر حسب بایت چاپ کنید
echo “اندازه $file فایل است اندازه دلار بایت.”
دیگر
echo “فایل وجود ندارد یا خالی است.”
فی
خروجی زیر پس از اجرای اسکریپت قبلی ظاهر می شود. در اینجا، حجم فایل “courses.txt” 153 بایت است:
محتوا را به یک فایل اضافه کنید
عملگر “>>” در Bash برای اضافه کردن محتوای فایل استفاده می شود. فرض کنید باید یک خط جدید در فایل “courses.txt” با استفاده از ” اضافه کنید.echo” فرمان قبل و بعد از اجرای دستور “cat” را اجرا کنیدechoدستور ” که یک خط جدید در انتهای فایل “courses.txt” اضافه می کند.
$ echo “ساختار داده CSE-202” >> courses.txt
$ گربه courses.txt
خروجی زیر پس از اجرای دستورات قبلی ظاهر می شود. یک خط جدید در انتهای فایل “courses.txt” اضافه می شود:
یک کپی از یک فایل تهیه کنید
دستور cp برای ایجاد یک فایل جدید از یک فایل موجود استفاده می شود. اسکریپت زیر با کپی کردن محتوای فایل “courses.txt” یک فایل جدید به نام “courses_copy.txt” ایجاد می کند:
#نام فایل مبدا و مقصد را تعریف کنید
منبع فایل=“courses.txt”
مقصد_فایل=“courses_copy.txt”
اگر [ -f $source_file ]
سپس
در صورت وجود #فایل را کپی کنید
cp $source_file $destination_file
echo “فایل با موفقیت کپی شد.”
دیگر
echo “Source فایل موجود نیست.”
فی
اگر فایل “copy.txt” در مکان فعلی وجود داشته باشد، خروجی زیر ظاهر می شود. سپس دستور “cat” برای بررسی اینکه آیا محتوای فایل به درستی کپی شده است یا خیر اجرا می شود:
مکان فایل را جابجا کنید
دستور “mv” برای انتقال هر فایل از یک مکان به مکان دیگر استفاده می شود. دستورات زیر را برای بررسی محتوای فایل “courses_copy.txt” اجرا کنید، فایل را به محل “temp” منتقل کنید و بررسی کنید که آیا فایل با موفقیت جابجا شده است یا خیر:
$ mv دمای courses_copy.txt
$ گربه دما/courses_copy.txt
خروجی زیر نشان می دهد که فایل “courses_copy.txt” با موفقیت به پوشه “temp” منتقل شده است:
تعداد کل خطوط فایل را بشمارید
چندین دستور در Bash برای شمارش کل خطوط وجود دارد. در اسکریپت زیر از دستورات “wc”، “sed” و “awk” برای شمارش کل خطوط فایلی که از کاربر گرفته می شود استفاده می شود. اگر نام فایلی که از کاربر گرفته شده وجود نداشته باشد، یک پیغام خطا چاپ می شود.
#نام فایل را از کاربر بگیرید
خواندن -پ “نام فایل موجود را وارد کنید:” fn
اگر [ -s $fn ]
سپس
تعداد خطوط کل فایل را با استفاده از دستورات «wc»، «sed» و «awk» بشمارید
wc_lines=$(دستشویی -ل < $fn)
sed_lines=$(sed -n ‘$=’ $fn)
awk_lines=$(بیخیال ‘پایان { print NR }’ $fn)
#چاپ خروجی دستورات مختلف
echo مجموع خطوط (WC): $wc_lines“
echo مجموع خطوط (sed): $sed_lines“
echo “خطوط کل (awk): $awk_lines“
دیگر
در صورت عدم وجود یا خالی بودن فایل، پیامی را چاپ کنید
echo “فایل وجود ندارد یا خالی است.”
فی
خروجی زیر نشان می دهد که خروجی سه دستوری که در اسکریپت استفاده می شود یکسان است و فایل “courses.txt” شامل شش خط است:
جستجوی محتوا در یک فایل
دستور “grep” برای جستجوی هر محتوایی در یک فایل با استفاده از کلمات جستجو یا الگوی عبارت منظم استفاده می شود. روش جستجوی محتوا در یک فایل با استفاده از یک کلمه جستجوگر خاص در دستور “grep” با گزینه “-i” در اسکریپت زیر نشان داده شده است. در اینجا، گزینه “-i” نشان دهنده موارد نادیده گرفته می شود. بنابراین، کلمه جستجو شده در فایل به روشی غیر حساس جستجو می شود.
#نام فایل را از کاربر بگیرید
خواندن -پ “نام فایل موجود را وارد کنید:” fn
#کلمه جستجو را از کاربر بگیرید
خواندن -پ “کلمه جستجو را وارد کنید:” src
اگر [ -s $fn ]
سپس
#کلمه خاص را در فایل جستجو کنید
خروجی=$(grep -من $src $fn)
اگر [ “$output“ != “” ]
سپس
خروجی دستور grep را #چاپ کنید
echo “خروجی $“
فی
دیگر
در صورت نبود فایل پیامی #چاپ کنید
echo “فایل وجود ندارد یا خالی است.”
فی
خروجی زیر پس از اجرای اسکریپت با نام فایل “courses.txt” و کلمه جستجوگر CSE-208 ظاهر می شود. خط دوم فایل حاوی کلمه “CSE208” است:
با استفاده از Regex محتوای یک فایل را جستجو و جایگزین کنید
دستور “sed” یکی از راه های جستجو و جایگزینی محتوای یک فایل در Bash است. در اسکریپت زیر روش جستجو و جایگزینی محتوای یک فایل با استفاده از دستور “sed” با گزینه “-i” نشان داده شده است. نام فایل، کلمه جستجو و کلمه جایگزین از کاربر گرفته شده است.
خواندن -پ “نام فایل موجود را وارد کنید:” fn
#کلمه جستجو را بگیرید
خواندن -پ “کلمه جستجو را وارد کنید:” src
#کلمه جایگزین را بگیرید
خواندن -پ “کلمه جایگزین را وارد کنید:” هرزه
اگر [ -s $fn ]
سپس
کلمه خاص را در فایل #جستجو و جایگزین کنید
sed -من “s/$src/$rep/” $fn
دیگر
در صورت نبود فایل پیامی #چاپ کنید
echo “فایل وجود ندارد یا خالی است.”
فی
خروجی زیر را اجرا کنید تا محتوای فایل “courses.txt” را قبل و بعد از اجرای اسکریپت بررسی کنید:
$ bash فایل 11.bash
$ گربه courses.txt
خروجی زیر نشان می دهد که کلمه جستجوی CSE-303 در فایل “courses.txt” وجود دارد و کلمه جایگزین CSE-307 جایگزین آن شده است:
حذف یک فایل
دستور “rm” برای حذف یک فایل در Bash استفاده می شود. این دستور با گزینه “-i” در اسکریپت زیر برای حذف یک فایل در صورت وجود استفاده می شود. در اینجا، نام فایل از کاربر گرفته شده است.
# نام فایل را بگیرید
خواندن -پ ‘نام فایل را وارد کنید:’ fn
# وجود فایل را بررسی کنید
اگر [ -f $fn ]; سپس
# فایل را حذف کنید
rm -من “$fn“
# بررسی کنید که آیا فایل حذف شده است یا خیر
اگر [ -e fn ]; سپس
echo “فایل حذف نشده است.”
دیگر
echo “فایل حذف شد.”
فی
دیگر
echo “فایل موجود نیست.”
فی
با توجه به خروجی، نام فایل “t.txt” در محل فعلی قرار دارد و پس از تایید فایل حذف می شود.
نتیجه
انواع مختلف عملیات فایل در Bash در این آموزش توضیح داده شده است. اسکریپت های این آموزش به کاربر Bash کمک می کند تا کارهای مختلف مرتبط با فایل مانند ایجاد فایل ها، ضمیمه کردن فایل ها، شمارش حجم فایل، جستجوی محتوا، جایگزینی محتوا، حذف فایل ها و غیره را بشناسد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-01 03:32:09