রেজেক্স কোয়ানটিফায়ার সহ কমান্ড সন্ধান করুন যেমন {1,2}


14

আমি একটি ফাইন্ড কমান্ড স্ট্রিং তৈরি করার চেষ্টা করছি যা 1-99 নম্বর দিয়ে শেষ হওয়া সমস্ত ফাইল খুঁজে পাবে তবে অন্য সকলকে বাদ দেবে।

যেমন আমি খুঁজতে চান myfile1 myfile99 কিন্তু myfile456 এবং myfilebackup

আমি যে রেজেক্সের কথা ভাবছি তা হ'ল myfile[1-9]{1,2}তবে আমি এটি সন্ধানের সাথে কাজ করতে পারি না।

find . -regex '.*myfile[0-9]{1,2}' অথবা find . -iname 'myfile[0-9]{1,2}'

যা আমি দেখতে পাচ্ছি তা থেকে এটি {1,2}কাজ করে না।

(উপায় দ্বারা আপনি -name -regexআন্তঃব্যবহারযোগ্য ব্যবহার করতে পারেন ?)

কোন সাহায্য প্রশংসা।


1
-iname(এবং -name) গ্লোব ব্যবহার করুন , যার মধ্যে এই সিনট্যাক্সটি নেই।
l0b0

উত্তর:


10

আপনি চেষ্টা করতে পারেন

find . -regex '.*myfile[0-9][0-9]?'

অথবা

find . \( -name "myfile[0-9][0-9]" -o -name "myfile[0-9]" \)

ধন্যবাদ - প্রথম লাইনটি আমার পক্ষে কাজ করছে। আমি এটি নাম দিয়ে চেষ্টা করেছিলাম কিন্তু আমি মনে করি না এটি সিনট্যাক্সকে সমর্থন করে অন্যথায় আমি কিছু ভুল করছি।
লুকাশাস

17

আপনি যদি জিএনইউ খুঁজে পান তবে আপনি অন্য নিয়মিত প্রকাশের ধরণটি ব্যবহার করতে পারেন:

find . -regextype sed -regex '.*myfile[0-9]\{1,2\}'

জিএনইউ অনুসারে ডিফল্টরূপে findএকটি নিউট্রেড ইম্যাক্স নিয়মিত এক্সপ্রেশন সিনট্যাক্স ব্যবহার করে - ইমা্যাকস \{from,to\}সিনট্যাক্স সমর্থন করে, তবে কমপক্ষে জিএনইউ findএটি সমর্থন করে না।

আশ্চর্যের বিষয় হল, রেফারেন্স ম্যানুয়ালটিতে sedনিয়মিত এক্সপ্রেশন সিনট্যাক্সের কোনও বিভাগ অন্তর্ভুক্ত থাকে না , সুতরাং এর কোন অংশগুলি সমর্থিত তা কে জানে।


1
sedমত edএকটি ওরফে মনে করা হয় posix-basic, যাতে POSIX BRE সঙ্গে সামঞ্জস্যপূর্ণ হওয়া উচিত, (যদিও সমর্থন মত কিছু এক্সটেনশান \+)। এটি জিএনইউর সাথে সামঞ্জস্যপূর্ণ নয় sedযেখানে উদাহরণস্বরূপ [\n]ব্যাকস্ল্যাশের পরিবর্তে একটি নতুন লাইনের সাথে মেলে বা nপসিক্সের প্রয়োজনীয়। -regextype posix-extendedপসিক্স এয়ারস (তাই .*myfile[0-9]{1,2}) এর জন্যও দেখুন \sবা এর মতো এক্সটেনশান সহ\<
স্টাফেন চেজেলাস

-রেজেক্সটাইপ সম্পর্কে আমি কখনই জানতাম না। দেখে -regextype egrepমনে হচ্ছে আপনি এটি ব্যবহার করলে মনে হয় আপনি ব্যাকস্ল্যাশগুলি এড়াতে পারবেন।
শ্রীধর সারনোবাত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.