ব্যাশে এক্সটেনশন ছাড়াই ফাইলের নাম পড়ুন

Read Filename Without Extension Bash



লিনাক্স ব্যবহারকারীদের অনেক কাজে নিয়মিত ফাইল নিয়ে কাজ করতে হয়। কখনও কখনও ব্যবহারকারীদের কেবল ফাইল এক্সটেনশনটি সরিয়ে ফাইলের বেসনেম পড়তে হয়। ফাইলের নাম এবং এক্সটেনশনকে লিনাক্সের বিভিন্ন ভেরিয়েবলে একাধিক উপায়ে আলাদা এবং সংরক্ষণ করা যায়। বাশ বিল্ট-ইন কমান্ড এবং শেল প্যারামিটার সম্প্রসারণ ফাইলের এক্সটেনশন অপসারণ করতে ব্যবহার করা যেতে পারে। এক্সটেনশান ছাড়া ফাইলের নাম কিভাবে উপরে উল্লিখিত উপায়গুলি ব্যবহার করে পড়তে পারে তা এই টিউটোরিয়ালে ব্যাখ্যা করা হয়েছে।

ফাইলের নাম পড়ার জন্য `বেসেনাম` কমান্ড ব্যবহার করা

`basename` কমান্ড একটি ডিরেক্টরি বা ফাইল পাথ থেকে এক্সটেনশন ছাড়াই ফাইলের নাম পড়তে ব্যবহৃত হয়।







বাক্য গঠন:



বেসনেমনাম[প্রত্যয়]

অথবা



বেসনেমবিকল্প ... নাম ...

এখানে, NAME সম্পূর্ণ পথ সহ ফাইলের নাম বা ফাইলের নাম ধারণ করতে পারে। SUFFIX alচ্ছিক এবং এতে ফাইল এক্সটেনশন অংশ থাকে যা ব্যবহারকারী অপসারণ করতে চায়। `basename` কমান্ডের কিছু অপশন আছে যা নিচে বর্ণিত হয়েছে।





বিকল্প

নাম বর্ণনা
-প্রতি এটি কমান্ড আর্গুমেন্ট হিসাবে পাথ বা পাথ ছাড়া একাধিক ফাইলের নাম পাস করতে ব্যবহৃত হয়।
-এস এটি এক্সটেনশনটিকে প্রত্যয় হিসাবে পাস করতে ব্যবহৃত হয় যা অপসারণ করা প্রয়োজন।
-সঙ্গে এটি প্রতিটি ফাইলকে নাল দিয়ে আলাদা করে একাধিক ফাইলের নাম প্রদর্শন করতে ব্যবহৃত হয়।
- সাহায্য এটি 'বেসনেম' কমান্ড ব্যবহারের তথ্য প্রদর্শন করতে ব্যবহৃত হয়।
- রূপান্তর এটি সংস্করণের তথ্য প্রদর্শন করতে ব্যবহৃত হয়।

উদাহরণ -1: NAME এবং SUFFIX ব্যবহার করা

নিম্নলিখিত `বেসনেম` কমান্ড এক্সটেনশন সহ ফাইলের নাম পুনরুদ্ধার করবে। SUFFIX এই কমান্ড থেকে বাদ দেওয়া হয়েছে। এখানে, আউটপুট হয় 'Product.txt'



$বেসনেম /বাড়ি/fahmida/কোড/product.txt

যদি আপনি এক্সটেনশন ছাড়াই ফাইলের নাম পুনরুদ্ধার করতে চান, তাহলে আপনাকে 'বেসনেম' কমান্ড দিয়ে SUFFIX হিসাবে ফাইল এক্সটেনশন প্রদান করতে হবে। এখানে, এক্সটেনশন হল .txt। ফাইল থেকে এক্সটেনশন অপসারণ করতে নিম্নলিখিত কমান্ডটি চালান।

$বেসনেম /বাড়ি/fahmida/কোড/product.txt .txt

উদাহরণ -২: '-a' বিকল্প এবং NAME ব্যবহার করা

'বেসনেম' কমান্ডের '-a' বিকল্পের ব্যবহার এই উদাহরণে দেখানো হয়েছে। এখানে, 'বেসনেম' কমান্ড দিয়ে দুটি ফাইল পাথ আর্গুমেন্ট হিসাবে পাস করা হয়েছে। এক্সটেনশন সহ প্রতিটি ফাইলের নাম পথ থেকে পুনরুদ্ধার করা হবে এবং নতুন লাইন দ্বারা মুদ্রণ করা হবে।

$বেসনেম -প্রতি /বাড়ি/fahmida/index.html/বাড়ি/fahmida/কোড/emp.txt

উদাহরণ-3: '-z' বিকল্প এবং NAME ব্যবহার করা

'-জ' বিকল্পটি 'বেসনেম' কমান্ডের সাহায্যে একাধিক ফাইলের নামগুলি নতুন লাইনের পরিবর্তে শূন্য মান সহ মুদ্রণ করতে ব্যবহৃত হয়। নিম্নলিখিত কমান্ড দুটি বিকল্প একসাথে ব্যবহার করে, '-এ' এবং '-জ'। এখানে, দুটি ফাইলের নাম, index.html এবং emp.txt কোন স্থান বা নতুন লাইন ছাড়াই মুদ্রণ করবে।

$বেসনেম -দ্য /বাড়ি/fahmida/index.html/বাড়ি/fahmida/কোড/emp.txt

উদাহরণ -4: '-s' বিকল্প এবং NAME ব্যবহার করা

নিচের কমান্ডটি SUFFIX এর বিকল্প হিসেবে `বেসেনাম` ব্যবহার করা যেতে পারে। ফাইল এক্সটেনশনটি ফাইল থেকে এক্সটেনশান অপসারণের জন্য '-sh' বিকল্প দিয়ে পাস করতে হবে। নিম্নলিখিত উদাহরণটি এক্সটেনশনটি সরিয়ে দেবে, '-sh' ফাইল থেকে, 'addition.sh'।

$বেসনেম -এস.sh সংযোজন

উদাহরণ -5: SUFFIX ছাড়া ফাইল এক্সটেনশন সরান

আপনি যদি ফাইলের নাম থেকে যে ফাইলের এক্সটেনশনটি সরাতে চান তা জানেন না, তাহলে এই উদাহরণটি আপনাকে সমস্যার সমাধান করতে সাহায্য করবে। নামে একটি ফাইল তৈরি করুন read_file.sh যেকোনো এক্সটেনশনের ফাইলের নাম পুনরুদ্ধার করতে নিচের কোড সহ। ফাইলের নাম থেকে যেকোনো ধরনের এক্সটেনশন মুছে ফেলার জন্য এই উদাহরণে `sed` কমান্ড ব্যবহার করা হয়। যদি আপনি স্ক্রিপ্ট চালান, আউটপুট হবে ' গড় 'এক্সটেনশন সরানোর পরে' py '।

read_file.sh

#!/বিন/ব্যাশ
# পাথ সহ ফাইলের নাম সেট করুন
ফাইলের নাম='/home/fahmida/code/average.py'
# 'বেসনেম' এবং `sed` কমান্ড ব্যবহার করে এক্সটেনশন ছাড়াই ফাইলের নাম পড়ুন
বের করে দিল '$ (basename '$ filename' | sed 's/ (।*) ..*/ 1/')'

স্ক্রিপ্ট চালান।

$বাশread_file.sh

উদাহরণ-6: ফাইল এক্সটেনশনটি txt থেকে docx- এ রূপান্তর করুন

এক্সটেনশন ছাড়া ফাইলের নাম ফাইলটিকে এক এক্সটেনশন থেকে অন্য এক্সটেনশনে রূপান্তর করতে হবে। এই উদাহরণটি দেখায় যে আপনি কিভাবে bash স্ক্রিপ্টে `basename` কমান্ড ব্যবহার করে সব টেক্সট ফাইল (.txt) শব্দ ফাইল (.docx) তে এক্সটেনশন পরিবর্তন করতে পারেন। নামে একটি ফাইল তৈরি করুন, convert_file.sh নিম্নলিখিত কোড সহ। এখানে, একটি ফর-ইন লুপ সমস্ত পাঠ্য ফাইলগুলি পড়তে ব্যবহৃত হয় .txt বর্তমান ডিরেক্টরি থেকে এক্সটেনশন। এক্সটেনশন ছাড়াই ফাইলের নামটি 'বেসনেম' কমান্ড দ্বারা পড়া হয় এবং লুপের প্রতিটি পুনরাবৃত্তিতে .docx এক্সটেনশন যোগ করে নামকরণ করা হয়।

convert_file.sh

#!/বিন/ব্যাশ
# লুপ বর্তমান ডিরেক্টরি থেকে প্রতিটি পাঠ্য ফাইল পড়বে
জন্যফাইলের নামভিতরে 'ls *.txt'
কর
# রূপান্তর করার আগে পাঠ্য ফাইলের নাম মুদ্রণ করুন
বের করে দিল রূপান্তরের আগে ফাইলের নাম:$ filename'
# Txt ফাইলের এক্সটেনশনটি ডকক্সে পরিবর্তন করুন
mv - '$ filename' '$ (বেসনেম - '$ filename' .txt).docx '
সম্পন্ন

স্ক্রিপ্ট চালান।

$বাশconvert_file.sh

`Ls` কমান্ড ব্যবহার করে পাঠ্য ফাইলগুলি রূপান্তরিত হয়েছে কি না তা পরীক্ষা করুন।

$ls

উদাহরণ-7: শেল প্যারামিটার সম্প্রসারণ ব্যবহার করে এক্সটেনশন ছাড়াই ফাইলের নাম পড়ুন

শেল প্যারামিটার সম্প্রসারণ ব্যাশে এক্সটেনশন ছাড়াই ফাইলের নাম পড়ার আরেকটি উপায়। এই উদাহরণ শেল প্যারামিটার সম্প্রসারণের ব্যবহার দেখায়। নিচের কমান্ডটি ফাইল পাথনামটি ভেরিয়েবল, $ তে সংরক্ষণ করবে ফাইলের নাম

$ফাইলের নাম='/var/usr/temp/myfile.tar.gz'

নিম্নলিখিত কমান্ড পথ থেকে সব ধরনের এক্সটেনশন সরিয়ে দেবে এবং ভেরিয়েবলে এক্সটেনশন ছাড়াই ফাইল পাথ সংরক্ষণ করবে, $ file1

$ফাইল 1='$ {filename %%।*}'

নিম্নলিখিত কমান্ডটি কেবল পথ থেকে ফাইলের নাম মুদ্রণ করবে। এখানে, আউটপুট হবে ' আমার কাগজপত্র '।

$বের করে দিল '$ {file1 ##*/}'

যদি ফাইলের নাম দুটি ডট (।) সহ দুটি এক্সটেনশন থাকে এবং আপনি ফাইলের শেষ এক্সটেনশনটি সরিয়ে ফাইলের নাম পড়তে চান তাহলে আপনাকে নিম্নলিখিত কমান্ডটি ব্যবহার করতে হবে। নিম্নলিখিত কমান্ডটি চালান যা ভেরিয়েবলে ফাইল পাথ সংরক্ষণ করে, $ file2 ফাইলের শেষ এক্সটেনশনটি সরিয়ে দিয়ে।

$ফাইল 2='$ {filename%।*}'

এখন, একটি ডট (।) এক্সটেনশন দিয়ে ফাইলের নাম মুদ্রণ করতে নিম্নলিখিত কমান্ডটি চালান। এখানে, আউটপুট হবে myfile.tar।

$বের করে দিল '$ {file2 ## * /}'

উপসংহার

এক্সটেনশন ছাড়া ফাইলের নাম বিভিন্ন উদ্দেশ্যে প্রয়োজন। এক্সটেনশন ছাড়া ফাইলের নামের কিছু ব্যবহার এই টিউটোরিয়ালে কিছু উদাহরণ ব্যবহার করে ব্যাখ্যা করা হয়েছে যেমন ফাইল রূপান্তর। এই টিউটোরিয়ালটি সেই ব্যবহারকারীদের সাহায্য করবে যারা ফাইলের নাম এবং এক্সটেনশনকে ফাইলের পথ থেকে আলাদা করার উপায় শিখতে আগ্রহী। এখানে দুটি উপায় ব্যাখ্যা করা হয়েছে। ব্যবহারকারী শুধুমাত্র ফাইল পাথ থেকে ফাইলের নাম বের করতে এই যে কোন উপায় অনুসরণ করতে পারেন।