প্রশ্নটি নিয়মিত প্রকাশের জন্য জিজ্ঞাসা করেছিল। বাশ, এবং এইভাবে ls
, এখানে নিয়মিত অভিব্যক্তি সমর্থন করে না। এটি যা সমর্থন করে তা হ'ল ফাইলের নাম এক্সপ্রেশন ( গ্লোব্বিং ), ওয়াইল্ডকার্ডের একধরনের । নিয়মিত প্রকাশগুলি এর চেয়ে অনেক বেশি শক্তিশালী।
আপনি যদি সত্যিই নিয়মিত এক্সপ্রেশন ব্যবহার করতে চান তবে আপনি এটি ব্যবহার করতে পারেন find -regex
:
find . -maxdepth 1 -regex '\./.*[^0-9][0-9]\.txt'
অনুসন্ধান ডিফল্ট অনুসারে পুনরাবৃত্ত হয়, তবে ls
তা নয়। কেবলমাত্র বর্তমান ডিরেক্টরিতে ফাইলগুলি সন্ধান করতে আপনি এর সাথে পুনরাবৃত্তি অক্ষম করতে পারেন -maxdepth 1
। পথের সাথে ফাইল নামের বিরুদ্ধে ম্যাচগুলি সন্ধান করুন, এজন্য ./
আপনি যদি সন্ধান করেন তবে ফাইল নামগুলি শুরু হয় .
। রেজেক্স এটির সাথে লড়াই শুরু \./
করে। মনে রাখবেন যে একটি রেইজেক্সে, .
কোনও চরিত্রের সাথে মেলে একটি বিশেষ চরিত্র, তবে এখানে আমরা সত্যিই একটি বিন্দু চাই, সে কারণেই আমরা এটি ব্যাকস্ল্যাশ দিয়ে এড়িয়ে চলেছি। আমরা ডট .txt
ইনগুলির জন্যও একই কাজ করি কারণ রেইজেক্স অন্যথায় মিলে যায় Atxt
। অঙ্কের ক্লাসগুলি গ্লোব্বিংয়ের মতো, কেবলমাত্র অক্ষর শ্রেণিটি উল্টানোর ^
পরিবর্তে আপনার প্রয়োজন !
।
আপনি যদি আউটপুট পেতে চান ls
তবে আপনি এটির -exec ls
মতো ব্যবহার করতে পারেন :
find . -maxdepth 1 -regex '\./.*[^0-9][0-9]\.txt' -exec ls -lah {} \;
find
বিভিন্ন regex স্বাদ একজোড়া সমর্থন করে। আপনি একটি নির্দিষ্ট করতে পারেন -regextype
, উদাহরণস্বরূপ:
find . -maxdepth 1 -regextype egrep -regex '\./.*[^0-9][0-9]\.txt'
আমার জন্য, সম্ভাব্য প্রকারগুলি হ'ল: 'ফাইন্ডুইল্টস-ডিফল্ট', 'অ্যাজক', 'এগ্রিপ', 'এডি', 'ইম্যাকস', 'গ্নু-অজক', 'গ্রেপ', 'পিক্সিক-অ্যাজক', 'পিক্সিক-বেসিক' , 'পিক্সিক্স-এগ্রিপ', 'পিক্সিক্স-এক্সটেন্ডেড', 'পিক্সিক্স-মিনিমাম-বেসিক', 'সেড' আপনি find -regextype help
আপনার সিস্টেমে কী সমর্থিত তা জানতে রান করতে পারেন ।
shopt -s extglob
।