আমার সুপারিশটি ব্যবহার করা basename
।
এটি উবুন্টুতে ডিফল্টরূপে, ভিজ্যুয়ালি সহজ কোড এবং বেশিরভাগ ক্ষেত্রে মোকাবেলা করা হয়।
শূন্যস্থান এবং মাল্টি-ডট / সাব-এক্সটেনশন মোকাবেলার জন্য এখানে কয়েকটি উপ-কেস রয়েছে:
pathfile="../space fld/space -file.tar.gz"
echo ${pathfile//+(*\/|.*)}
এটি সাধারণত প্রথম থেকেই প্রসার থেকে মুক্তি পায় .
তবে আমাদের ..
পথে ব্যর্থ হয়
echo **"$(basename "${pathfile%.*}")"**
space -file.tar # I believe we needed exatly that
এখানে একটি গুরুত্বপূর্ণ নোট:
আমি স্পেসগুলি মোকাবেলায় ডাবল কোটসের ভিতরে ডাবল কোট ব্যবহার করেছি। একক উদ্ধৃতি tex টেক্সট করার কারণে পাস হবে না $ বাশ অস্বাভাবিক এবং প্রসারণের কারণে "দ্বিতীয়" প্রথম "উদ্ধৃতি" পড়ে।
তবে, আপনার এখনও চিন্তা করা দরকার .hidden_files
hidden="~/.bashrc"
echo "$(basename "${hidden%.*}")" # will produce "~" !!!
প্রত্যাশিত ফলাফল নয়। এটি ব্যবহারে ঘটানোর জন্য $HOME
বা /home/user_path/
আবার ব্যাশটি "অস্বাভাবিক" এবং "~" প্রসারিত করবেন না (ব্যাশের বাশপিটফলগুলি অনুসন্ধান করুন)
hidden2="$HOME/.bashrc" ; echo '$(basename "${pathfile%.*}")'
basename $filename .exe
একই জিনিস করতে হবে। এটি ধরে নেওয়া হচ্ছে আপনি সর্বদা জানেন আপনি কী এক্সটেনশনটি সরাতে চান know