সোজা উইকিপিডিয়া থেকে নেওয়া :
? প্রশ্ন চিহ্নটি পূর্ববর্তী উপাদানের শূন্য বা এক ঘটনাকে নির্দেশ করে। উদাহরণস্বরূপ, colou? R "রঙ" এবং "রঙ" উভয়ের সাথেই মিলছে।
*নক্ষত্রটি পূর্ববর্তী উপাদানটির শূন্য বা তার বেশি সংকেতকে নির্দেশ করে। উদাহরণস্বরূপ, আব * সি "এসি", "এবিসি", "এবিবিসি", "অ্যাবিবিসি" ইত্যাদি মিলছে matches
বড় পার্থক্য হ'ল নক্ষত্রটি শূন্য বা ততোধিক ঘটনার সাথে মেলে, যখন প্রশ্ন চিহ্নটি শূন্য বা এক ঘটনার সাথে মেলে । এই দুটি উদাহরণের তুলনা করুন:
$ printf "colour\ncolor\ncolouur\n" | egrep 'colou?r'
colour
color
$ printf "colour\ncolor\ncolouur\n" | egrep 'colou*r'
colour
color
colouur
কারণ আপনি colouur
চিঠিতে (বাছাইয়ের আগে পূর্ববর্তী উপাদান ?
) একাধিকবার এসেছিল, এটির সাথে এটি মিলছে না ?
, তবে এটির সাথে মিলছে*
অনুরূপ উদাহরণ:
$ printf "error\neror\ner\n" | egrep 'er?or'
eror
$ printf "error\neror\ner\n" | egrep 'er*or'
error
eror
একই উইকিপিডিয়া পৃষ্ঠা থেকে:
যে কোনও একক চরিত্রের সাথে মেলে (অনেকগুলি অ্যাপ্লিকেশন নিউলাইনগুলি বাদ দেয় এবং ঠিক কোন অক্ষরগুলিকে নিউলাইনগুলি বিবেচনা করা হয় তা হ'ল স্বাদ-, অক্ষর-এনকোডিং- এবং প্ল্যাটফর্ম-নির্দিষ্ট, তবে লাইন ফিডের অক্ষরটি অন্তর্ভুক্ত রয়েছে তা ধরে নেওয়া নিরাপদ)। POSIX বন্ধনী এক্সপ্রেশন মধ্যে, ডট অক্ষর একটি আক্ষরিক বিন্দুর সাথে মেলে। উদাহরণস্বরূপ, এসি "অ্যাবসি" ইত্যাদির সাথে মেলে, তবে [এসি] কেবল "ক", "।", "সি" এর সাথে মেলে।
আমাদের উদাহরণে,
$ printf "colour\ncolor\ncolouur\n" | egrep 'colo.r'
colour
$ printf "colour\ncolor\ncolouur\n" | egrep 'colou.r'
colouur
যথাযথভাবে যথেষ্ট, শেষটি পড়ছে match any line that has "colou", plus any character, plus letter "r"
উপসংহার
আপনি জিজ্ঞাসা করেছেন: "আমি জানি যে '*' এর অর্থ সমস্ত বা কিছুই না, তবে এটি সম্পর্কে সঠিকভাবে চিন্তা করার সঠিক উপায় কিনা তা আমি নিশ্চিত নই। অন্যদিকে '' & '?' একই মনে হচ্ছে। " আপনি দেখতে পাচ্ছেন যে, বিন্দু এবং নক্ষত্রটি একরকম নয়। বিন্দুটি এমন কোনও চরিত্রের উপর পরিচালনা করে যা সেই নির্দিষ্ট অবস্থানটি দখল করে থাকতে পারে, যখন প্রশ্ন চিহ্নটি পূর্ববর্তী উপাদানটিতে কাজ করে।