نام فایل و پسوند را در Bash استخراج کنید

معرفی

دلایل زیادی وجود دارد که ممکن است بخواهید نام فایل و پسوند یک فایل را در Bash استخراج کنید:

  • برای دستکاری نام یا پسوند فایل – ممکن است بخواهید نام یا پسوند فایل را استخراج کنید تا آن را تغییر دهید، مانند اضافه کردن یک پیشوند یا پسوند به نام فایل، یا تغییر پسوند فایل.

  • برای ایجاد یک فایل با یک نام منحصر به فرد – ممکن است بخواهید نام و پسوند فایل را استخراج کنید تا یک فایل جدید با یک نام منحصر به فرد ایجاد کنید، مانند افزودن یک مهر زمانی یا یک عدد تصادفی به نام فایل.

  • برای استفاده از نام یا پسوند فایل در یک اسکریپت یا دستور - ممکن است بخواهید نام یا پسوند فایل را استخراج کنید تا از آن به عنوان آرگومان یا ورودی برای یک اسکریپت یا دستور استفاده کنید، مانند ارسال آن به یک برنامه یا ایجاد فایلی با همان نام یک فهرست.

  • برای استخراج اطلاعات از نام فایل یا پسوند – ممکن است بخواهید نام یا پسوند فایل را استخراج کنید تا اطلاعاتی مانند تاریخ یا نوع فایل را از آن استخراج کنید.

در این مقاله، ما به سه روش رایج برای استخراج نام فایل و پسوند فایل در Bash نگاهی خواهیم انداخت. ما به هر یک از آنها نگاهی می اندازیم و جوانب مثبت و منفی را به شما می دهیم تا بتوانید تصمیمی آگاهانه در مورد اینکه چه رویکردی برای شما مناسب تر است بگیرید.

روش 1: استفاده از نام اصلی فرمان

La basename از دستور می توان برای استخراج نام فایل و پسوند از مسیر فایل استفاده کرد:

filename=$(basename /path/to/file.txt)
echo $filename

اگرچه استفاده از این روش بسیار ساده و آسان است، متأسفانه هیچ راهی وجود ندارد که بتوانیم تنها نام فایل (بدون پسوند) را بدون هیچ گونه پس پردازشی استخراج کنیم.

شما همچنین می توانید با استفاده از dirname دستور استخراج مسیر دایرکتوری به طور جداگانه:

directory=$(dirname /path/to/file.txt)
echo $directory

مزایا:
  • ساده برای استفاده
  • نام فایل ها را با فاصله به درستی مدیریت می کند
منفی:
  • فقط نام فایل را استخراج می کند و نمی تواند پسوند را به طور جداگانه بدون پردازش اضافی استخراج کند

روش 2: استفاده از گسترش پارامتر

Bash یک ویژگی به نام ارائه می دهد گسترش پارامتر، که به شما امکان می دهد با استفاده از یک نحو خاص، بخش هایی از یک متغیر را استخراج کنید. به عنوان مثال، می توانید از دستور زیر برای استخراج نام و پسوند فایل از مسیر فایل ذخیره شده در یک متغیر استفاده کنید:

filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename

همچنین می توانید از بسط پارامتر برای استخراج پسوند به طور جداگانه استفاده کنید:

extension=${filename##*.}
echo $extension

مزایا:
  • قابل انعطاف
  • می تواند نام فایل و پسوند را جداگانه استخراج کند،
  • نام فایل ها را با فاصله به درستی مدیریت می کند
منفی:
  • برای ذخیره مسیر فایل به متغیری نیاز دارد

روش 3: استفاده از بیدار فرمان

La awk فرمان یک ابزار پردازش متن قدرتمند است که می تواند برای استخراج بخش هایی از یک رشته استفاده شود. به عنوان مثال، می توانید از دستور زیر برای استخراج نام فایل و پسوند از مسیر فایل استفاده کنید:

filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename

راهنمای عملی و عملی ما برای یادگیری Git را با بهترین روش ها، استانداردهای پذیرفته شده در صنعت و برگه تقلب شامل بررسی کنید. دستورات Google Git را متوقف کنید و در واقع یاد گرفتن آی تی!

VOUS استفاده pouvez aussi awk برای استخراج پسوند به طور جداگانه:

extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension

مزایا:
  • قدرتمند
  • می تواند هر دو نام فایل و پسوند را به طور جداگانه استخراج کند
  • نام فایل ها را با فاصله به درستی مدیریت می کند
منفی:
  • سینتکس ممکن است برای برخی از کاربران ناآشنا باشد
  • نیاز به لوله گذاری مسیر فایل از طریق آن دارد awk

نتیجه

به طور کلی، استخراج نام فایل و پسوند یک فایل در Bash می تواند یک تکنیک مفید برای کار با فایل ها و انجام وظایف مختلف در پوسته Bash باشد.

هر یک از روش های ذکر شده مزایا و معایب خاص خود را دارد و بهترین انتخاب به نیازها و ترجیحات خاص شما بستگی دارد. اغلب مفید است که با چندین رویکرد آشنا باشید تا بتوانید مناسب ترین روش را برای موقعیت خود انتخاب کنید.

تمبر زمان:

بیشتر از Stackabuse