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

سرور مجازی NVMe

نام فایل را بدون پسوند در Bash بخوانید

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


کاربران لینوکس برای اهداف زیادی نیاز به کار منظم با فایل ها دارند. گاهی اوقات کاربران تنها با حذف پسوند فایل نیاز به خواندن نام پایه فایل دارند. نام فایل و پسوند را می توان جدا و ذخیره کرد روی متغیرهای مختلف در لینوکس به روش های مختلف. برای حذف پسوند فایل می توان از دستور داخلی Bash و بسط پارامتر پوسته استفاده کرد. روش خواندن نام فایل بدون پسوند با استفاده از روش های ذکر شده در بالا در این آموزش توضیح داده شده است.

با استفاده از دستور “basename” برای خواندن نام فایل

دستور “basename” برای خواندن نام فایل بدون پسوند از یک فهرست یا مسیر فایل استفاده می شود.

نحو:

نام پایه نام [SUFFIX]

یا

نام پایه OPTION… NAME…

در اینجا، NAME می‌تواند شامل نام فایل یا نام فایل با مسیر کامل باشد. SUFFIX اختیاری است و شامل بخش پسوند فایلی است که کاربر می خواهد حذف کند. دستور “basename” گزینه هایی دارد که در زیر توضیح داده شده است.

گزینه ها

نام شرح
برای ارسال چندین نام فایل با مسیر یا بدون مسیر به عنوان آرگومان های فرمان استفاده می شود.
-s برای ارسال پسوند به عنوان پسوندی که باید حذف شود استفاده می شود.
-z برای نمایش چندین نام فایل با جدا کردن هر فایل با null استفاده می شود.
-کمک برای نمایش اطلاعات استفاده از دستور basename استفاده می شود.
-نسخه برای نمایش اطلاعات نسخه استفاده می شود.

مثال-1: استفاده از NAME و SUFFIX

دستور “basename” زیر نام فایل را با پسوند بازیابی می کند. SUFFIX از این دستور حذف شده است. در اینجا، خروجی است “product.txt”.

$ نام پایه /خانه/فهمیده/کد/product.txt

اگر می خواهید نام فایل را بدون پسوند بازیابی کنید، باید پسوند فایل را به صورت SUFFIX با دستور “basename” ارائه کنید. در اینجا، پسوند “.txt” است. دستور زیر را برای حذف پسوند از فایل اجرا کنید.

$ نام پایه /خانه/فهمیده/کد/product.txt .txt

نام فایل را بدون پسوند در Bash بخوانید

مثال-2: استفاده از گزینه -a و NAME

استفاده از گزینه ‘-a’ دستور ‘basename’ در این مثال نشان داده شده است. در اینجا، دو مسیر فایل به عنوان آرگومان با دستور “basename” ارسال می شود. هر نام فایل با پسوند از مسیر و بازیابی می شود print توسط خط جدید

$ نام پایه /خانه/فهمیده/index.html /خانه/فهمیده/کد/emp.txt

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

مثال-3: استفاده از گزینه ‘-z’ و NAME

گزینه ‘-z’ با دستور ‘basename’ استفاده می شود print چندین نام فایل با مقدار null به جای خط جدید. دستور زیر از دو گزینه با هم استفاده می کند، ‘-a’ و ‘-z’. در اینجا، دو نام فایل، index.html و emp.txt اراده print بدون هیچ فاصله یا خط جدید.

$ نام پایه -az /خانه/فهمیده/index.html /خانه/فهمیده/کد/emp.txt

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

مثال-4: استفاده از گزینه ‘-s’ و NAME

دستور زیر را می توان به عنوان جایگزین SUFFIX با ‘basename’ استفاده کرد. پسوند فایل باید با گزینه ‘-sh’ عبور کند تا پسوند فایل از فایل حذف شود. مثال زیر پسوند ‘-sh’ را از فایل ‘addition.sh’ حذف می کند.

$ نام پایه -s .ش اضافه.ش

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

مثال-5: پسوند فایل را بدون SUFFIX حذف کنید

اگر پسوند فایلی را که می‌خواهید از نام فایل حذف کنید، نمی‌دانید، این مثال به شما در حل مشکل کمک می‌کند. یک فایل به نام ایجاد کنید read_file.sh با کد زیر برای بازیابی نام فایل هر پسوند. دستور sed در این مثال برای حذف هر نوع پسوند از نام فایل استفاده می شود. اگر اسکریپت را اجرا کنید، خروجی به صورت ‘ خواهد بودمیانگین“پس از حذف پسوند”py‘.

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

read_file.sh

#!/صندوقچه/bash
# نام فایل را با مسیر تنظیم کنید
نام فایل=«/خانه/فهمیدا/کد/میانگین.py”
# با استفاده از دستور “basname” و “sed” نام فایل را بدون پسوند بخوانید
echo $(نام پایه “$filename” | sed ‘s/\(.*\)\..*/\1/’)”

اسکریپت را اجرا کنید.

$ bash read_file.sh

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

مثال-6: پسوند فایل را از txt به docx تبدیل کنید

نام فایل بدون پسوند نیاز به تبدیل فایل از یک پسوند به پسوند دیگر دارد. این مثال نشان می‌دهد که چگونه می‌توانید پسوند همه فایل‌های متنی (txt.) را با استفاده از دستور «basename» به فایل‌های word (docx.) تغییر دهید. bash اسکریپت یک فایل با نام، convert_file.sh با کد زیر در اینجا از یک حلقه for-in برای خواندن تمام فایل های متنی استفاده می شود «.txt» پسوند از دایرکتوری فعلی نام فایل بدون پسوند با دستور “basename” خوانده می شود و با افزودن پسوند “.docx” در هر تکرار حلقه تغییر نام می دهد.

convert_file.sh

#!/صندوقچه/bash
# حلقه هر فایل متنی را از دایرکتوری فعلی می خواند
برای نام فایل که در `ls *txt`
انجام دادن

# نام فایل متنی را قبل از تبدیل چاپ کنید

echo “نام فایل قبل از تبدیل: $filename

# پسوند فایل txt را به docx تغییر دهید

mv $filename $(basename — “$filename” .txt).docx”
انجام شده

اسکریپت را اجرا کنید.

$ bash convert_file.sh

با استفاده از دستور ls بررسی کنید که فایل های متنی تبدیل شده اند یا خیر.

$ ls

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

مثال-7: خواندن نام فایل بدون پسوند با استفاده از بسط پارامتر Shell

گسترش پارامتر پوسته روش دیگری برای خواندن نام فایل بدون پسوند است bash. این مثال کاربردهای بسط پارامتر پوسته را نشان می دهد. دستور زیر نام مسیر فایل را در متغیر $ ذخیره می کندنام فایل.

$ نام فایل=“/var/usr/temp/myfile.tar.gz”

دستور زیر انواع پسوندها را از مسیر حذف می کند و مسیر فایل را بدون پسوند در متغیر ذخیره می کند. $file1.

$ فایل 1=${filename%%.*}

دستور زیر خواهد بود print نام فایل فقط از مسیر. در اینجا، خروجی ‘myfile‘.

$ echo ${file1##*/}

اگر نام فایل دارای دو پسوند با دو نقطه (.) است و می خواهید نام فایل را با حذف آخرین پسوند فایل بخوانید، باید از دستور زیر استفاده کنید. دستور زیر را اجرا کنید که مسیر فایل را در متغیر ذخیره می کند $file2 با حذف آخرین پسوند فایل.

$ file2=${filename%.*}

حالا دستور زیر را اجرا کنید print نام فایل با پسوند یک نقطه (.). در اینجا، خروجی خواهد بود “myfile.tar”.

$ echo ${file2##*/}

نام فایل را بدون پسوند در Bash بخوانیدنام فایل را بدون پسوند در Bash بخوانید

نتیجه

نام فایل بدون پسوند برای اهداف مختلف مورد نیاز است. برخی از کاربردهای نام فایل بدون پسوند در این آموزش با استفاده از چند مثال مانند تبدیل فایل توضیح داده شده است. این آموزش به کاربرانی که علاقه مند هستند کمک می کند تا راه های جداسازی نام و پسوند فایل از مسیر فایل را بیاموزند. در اینجا دو راه توضیح داده شده است. کاربر می تواند هر یک از این راه ها را دنبال کند تا نام فایل را فقط از مسیر فایل استخراج کند.

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

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

زمان انتشار: 1402-12-31 18:35:04

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

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

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