ভূমিকা
আপনি বাশে ফাইলের নাম এবং এক্সটেনশন এক্সট্র্যাক্ট করতে চাইতে পারেন এমন অনেক কারণ রয়েছে:
-
ফাইলের নাম বা এক্সটেনশন ম্যানিপুলেট করতে - আপনি ফাইলের নাম বা এক্সটেনশনটি সংশোধন করার জন্য এক্সট্রাক্ট করতে চাইতে পারেন, যেমন ফাইলের নামের সাথে একটি উপসর্গ বা প্রত্যয় যোগ করা, বা ফাইল এক্সটেনশন পরিবর্তন করা।
-
একটি অনন্য নাম দিয়ে একটি ফাইল তৈরি করতে - আপনি একটি অনন্য নামের একটি নতুন ফাইল তৈরি করার জন্য ফাইলের নাম এবং এক্সটেনশন বের করতে চাইতে পারেন, যেমন ফাইলের নামের সাথে একটি টাইমস্ট্যাম্প বা একটি র্যান্ডম নম্বর যোগ করে৷
-
একটি স্ক্রিপ্ট বা কমান্ডে ফাইলের নাম বা এক্সটেনশন ব্যবহার করতে - আপনি একটি স্ক্রিপ্ট বা কমান্ডের জন্য একটি যুক্তি বা ইনপুট হিসাবে এটি ব্যবহার করার জন্য ফাইলের নাম বা এক্সটেনশন এক্সট্র্যাক্ট করতে চাইতে পারেন, যেমন এটি একটি প্রোগ্রামে পাস করতে বা একটি ডিরেক্টরির মতো একই নামের একটি ফাইল তৈরি করতে।
-
ফাইলের নাম বা এক্সটেনশন থেকে তথ্য বের করতে - আপনি ফাইলের নাম বা এক্সটেনশন বের করতে চাইতে পারেন যাতে এটি থেকে তথ্য বের করা যায়, যেমন তারিখ বা ফাইলের ধরন।
এই নিবন্ধে, আমরা Bash-এ ফাইলের নাম এবং ফাইল এক্সটেনশন এক্সট্র্যাক্ট করার তিনটি সবচেয়ে সাধারণ উপায়ের দিকে নজর দেব। আমরা তাদের প্রত্যেকের দিকে নজর দেব এবং আপনাকে সুবিধা এবং অসুবিধাগুলি দেব, যাতে আপনি কোন পদ্ধতিটি আপনার জন্য সবচেয়ে উপযুক্ত সে সম্পর্কে একটি শিক্ষিত সিদ্ধান্ত নিতে পারেন।
পদ্ধতি 1: ব্যবহার করে বেসনাম আদেশ
সার্জারির basename
কমান্ডটি একটি ফাইল পাথ থেকে ফাইলের নাম এবং এক্সটেনশন বের করতে ব্যবহার করা যেতে পারে:
filename=$(basename /path/to/file.txt)
echo $filename
যদিও এই পদ্ধতিটি বেশ সহজ এবং ব্যবহার করা সহজ, দুর্ভাগ্যবশত, কোনো পোস্টপ্রসেসিং ছাড়াই শুধুমাত্র ফাইলের নাম (কোনও এক্সটেনশন ছাড়াই) বের করার কোনো উপায় নেই।
এছাড়াও আপনি ব্যবহার করতে পারেন dirname
আলাদাভাবে ডিরেক্টরি পাথ বের করতে কমান্ড:
directory=$(dirname /path/to/file.txt)
echo $directory
পেশাদাররা:
- ব্যবহার করা সহজ
- স্পেস সহ ফাইলের নাম সঠিকভাবে পরিচালনা করে
কনস:
- শুধুমাত্র ফাইলের নাম বের করে এবং অতিরিক্ত প্রক্রিয়াকরণ ছাড়া আলাদাভাবে এক্সটেনশন বের করতে পারে না
পদ্ধতি 2: প্যারামিটার সম্প্রসারণ ব্যবহার করা
ব্যাশ নামক একটি বৈশিষ্ট্য প্রদান করে পরামিতি সম্প্রসারণ, যা আপনাকে একটি বিশেষ সিনট্যাক্স ব্যবহার করে একটি ভেরিয়েবলের অংশগুলি বের করতে দেয়। উদাহরণস্বরূপ, আপনি একটি ভেরিয়েবলে সঞ্চিত একটি ফাইল পাথ থেকে ফাইলের নাম এবং এক্সটেনশন বের করতে নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:
filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename
আপনি আলাদাভাবে এক্সটেনশন বের করতে পরামিতি সম্প্রসারণ ব্যবহার করতে পারেন:
extension=${filename##*.}
echo $extension
পেশাদাররা:
- নমনীয়
- ফাইলের নাম এবং এক্সটেনশন উভয়ই আলাদাভাবে বের করতে পারে,
- স্পেস সহ ফাইলের নাম সঠিকভাবে পরিচালনা করে
কনস:
- ফাইল পাথ সংরক্ষণ করার জন্য একটি পরিবর্তনশীল প্রয়োজন
পদ্ধতি 3: ব্যবহার করে অজস্র হুকুম
সার্জারির awk
কমান্ড একটি শক্তিশালী টেক্সট প্রসেসিং টুল যা একটি স্ট্রিং এর কিছু অংশ বের করতে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, আপনি একটি ফাইল পাথ থেকে ফাইলের নাম এবং এক্সটেনশন বের করতে নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:
filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename
সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!
আপনি ব্যবহার করতে পারেন awk
আলাদাভাবে এক্সটেনশন বের করতে:
extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension
পেশাদাররা:
- ক্ষমতাশালী
- ফাইলের নাম এবং এক্সটেনশন উভয়ই আলাদাভাবে বের করতে পারেন
- স্পেস সহ ফাইলের নাম সঠিকভাবে পরিচালনা করে
কনস:
- সিনট্যাক্স কিছু ব্যবহারকারীর কাছে অপরিচিত হতে পারে
- এর মাধ্যমে ফাইল পাথ পাইপ করা প্রয়োজন
awk
উপসংহার
সামগ্রিকভাবে, Bash-এ ফাইলের নাম এবং এক্সটেনশন এক্সট্র্যাক্ট করা ফাইলগুলির সাথে কাজ করার জন্য এবং Bash শেলের বিভিন্ন কাজ সম্পাদন করার জন্য একটি দরকারী কৌশল হতে পারে।
উল্লিখিত প্রতিটি পদ্ধতির নিজস্ব সুবিধা এবং অসুবিধা রয়েছে এবং সেরা পছন্দটি আপনার নির্দিষ্ট চাহিদা এবং পছন্দগুলির উপর নির্ভর করবে। একাধিক পদ্ধতির সাথে পরিচিত হওয়া প্রায়শই দরকারী যাতে আপনি আপনার পরিস্থিতির জন্য সবচেয়ে উপযুক্ত একটি বেছে নিতে পারেন।