আমি (বেস নাম আমি পথ ছাড়া অর্থ দ্বারা একটি ফাইলের বেস নামের শেষ 3 অক্ষরের একটি SH লিপিতে একটি পরিবর্তনশীল সেট করতে চেষ্টা করছি এবং প্রত্যয় ছাড়াই)। আমি এটি করতে সফল হয়েছি তবে, কৌতূহলের বাইরে, আমি ভাবছি যে আমি ব্যবহার করতে পারি এমন একটি সংক্ষিপ্ত, একক কমান্ড আছে কিনা। মূলত আমার সাথে ওয়ান-লাইনার ছিল awk
, তবে এটি দীর্ঘ ছিল। বর্তমানে আমার কাছে এই দ্বি-লাইনের স্ক্রিপ্ট রয়েছে (ধরে নিলাম একটি সম্পূর্ণ ফাইলের নাম রয়েছে $1
):
filebase=`basename "$1"`
lastpart=`echo -n ${filebase%.*} | tail -c3`
সুতরাং উদাহরণস্বরূপ, "/path/to/somefile.txt" "আইলে" এর সাথে শেষ হয় $lastpart
।
আমি কী একরকম একত্রিত করতে পারি basename
এবং প্রত্যয়টিকে একটি একক কমান্ডের মধ্যে ফালাটি বিট করতে পারি এবং tail
পাইপ ব্যবহার না করে এটিকে (বা আমি ব্যবহার করতে পারি এমন কিছু) পাঠানোর কোনও উপায় আছে কি? প্রত্যয়টি অজানা তাই আমি এটির পরামিতি হিসাবে বেস করতে পারি না basename
।
মূল লক্ষ্যটি যতটা সম্ভব সংক্ষিপ্ত হওয়া যতটা সম্ভব তত সংক্ষিপ্ত হওয়া সম্ভব নয়। এই সমস্তের আসল প্রসঙ্গটি সুপারউসার সম্পর্কে এই প্রশ্ন , যেখানে আমি যুক্তিসঙ্গত সহজ উত্তরটি নিয়ে আসার চেষ্টা করছি।
two
কাজ করবে; আমার বোধ হয় তার উপর বাড়ানো হবে .three
।
file.one.two.three
? আপনি চাইবেনile
নাকিtwo
?