P d গ্রেপের মৌলিক অভিব্যক্তি দ্বারা সমর্থিত নয়?


119

এটি কোনও আউটপুট উত্পন্ন করে না। কিভাবে?

$ echo 'this 1 2 3' | grep '\d\+'

তবে এগুলি করে:

$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3

$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3

2
আমার (সোলারিস) কাজ করে না তাদের কেউই।
স্প্রাফ

আমিও না. (সাইগউইন) তুমি কি বোঝাতে \+চাও? ওটার মানে কি?
এরিক উইলসন

হ্যাঁ, আমি ব্যাশ ব্যবহার করে উবুন্টু 10.04 এ আছি। গ্রেপ ইন বিআরআর জন্য আপনাকে কিছু অক্ষর থেকে বাঁচতে হবে। ম্যান গ্রেপে "বেসিক বনাম বর্ধিত নিয়মিত এক্সপ্রেশন" চেষ্টা করুন।
অঙ্কুর আগরওয়াল

2
@ ফারমবয়: +একটি রেইজেক্সের অর্থ "পূর্ববর্তী টোকেনের এক বা একাধিক"। এই ক্ষেত্রে এটি পালিয়ে গেছে কারণ এটি grepডিফল্ট রেজেক্স ইঞ্জিন দ্বারা প্রয়োজনীয় সিনট্যাক্স ।
দেনিথ

2
@ ফারমবয়: +আপনি যদি ব্যবহার করেন তবে পালাতে হবে grep; আপনি যদি ব্যবহার করছেন egrep, এটি না। (কমপক্ষে GNU সংস্করণের জন্য) এর grep -Eসমতুল্য egrep
কিথ থম্পসন

উত্তর:


196

grepএর ডিফল্ট মোডটি হ'ল ( \dআইরিচ ) পসিক্স রেগেক্স , এবং পিসিআর। আপনি -Pপার্ল-মতো রেগেক্সপ্সের জন্য, gnu গ্রেপ এ যেতে পারেন বা এর [[:digit:]]পরিবর্তে ব্যবহার করতে পারেন \d

daenyth@Bragi ~ $ echo 1 | grep -P '\d'
1
daenyth@Bragi ~ $ echo 1 | grep '[[:digit:]]'
1

10
BSD গ্রেপের এর -E মোডে \ d অন্তর্ভুক্ত রয়েছে। তবে জিএনইউ গ্রেপের এর -E মোডটি করে না। আমি এতটাই অবাক হয়েছি যে আমি এখনই এটি আবিষ্কার করছি shocked
কিথ টাইলার

> BSD গ্রেপ এর -E মোডে \ d অন্তর্ভুক্ত। তবে জিএনইউ গ্রেপের এর -E মোডটি করে না। আমি এতটাই অবাক হয়েছি যে আমি এখনই এটি আবিষ্কার করছি shocked এটি আমাকে গিট কমিট মেসেজের বৈধতা স্ক্রিপ্টে বিট করে। আমি খুব অবাক হয়েছিলাম \ d অপরাধী ছিল।
অস্টিনব্রুচ

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