Linux regular Expressions in Grep

এই পোস্টে লিনাক্সে বহুল ব্যবহৃত রেগুলার এক্সপ্রেশন ‘grep’ কমান্ড নিয়ে আলাপ করা হবে। ‘grep’ এর পূর্ণ অর্থ হচ্ছে grep (global regular expression print)। লিনাক্স/ইউনিক্স ভিত্তিক অপারেটিং সিস্টেমে কোনও ফাইলের মধ্যে প্যাটার্ন/কীওয়ার্ড/স্ট্রিং (string) খোঁজার জন্য ‘grep’ কমান্ড ব্যবহার করা হয়। ‘grep’ ব্যবহার করে, কোনও ফাইলের মধ্যে প্যাটার্ন/কীওয়ার্ড/স্ট্রিং হিসেবে Character, Group Character, String (word), Group String, Paragraph সার্চ করা যায়। নিচে কিছু উদাহরণের মাধ্যমে ‘grep’ এর ব্যবহার দেখানো হয়েছেঃ   

  • কোনও ফাইলের মধ্যে নির্দিষ্ট কীওয়ার্ড/প্যাটার্ন খোঁজার করার জন্য নিচের কমান্ডঃ

[root@desktop ~]# grep ‘root’ /etc/passwd

  • ‘grep’ কে cat, tail, head, less, more, cut এর সাথে পাইপলাইন (|) দিয়ে ব্যবহার করা যায়ঃ

[root@desktop ~]# cat /etc/passwd | grep ‘student’

  • ফাইলের মধ্যে case in-sensitive প্যাটার্ন/কীওয়ার্ড খুঁজতে ‘-i’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -i ‘ftp’ /etc/passwd

  • একাধিক ফাইলের মধ্যে যদি প্যাটার্ন/কীওয়ার্ড খুঁজতে চাই, তাহলে নিচের কমান্ডঃ

[root@desktop ~]# grep -i ‘ftp’ /etc/passwd  /etc/shadow

  • নির্দির্ষ্ট প্যাটার্ন/কী-ওয়ার্ডের লাইন নাম্বার জানতে চাইলে, n’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -n ‘student’ /etc/passwd

  • নির্দির্ষ্ট প্যাটার্ন/কীওয়ার্ড বাদে (excluding) খুঁজতে চাই, ‘-v’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -v ‘nologin’ /etc/passwd 

  • নির্দির্ষ্ট প্যাটার্ন/কীওয়ার্ড দিয়ে শুরুর লাইন বের করার জন্য (caret) সিম্বল ‘^’ ব্যবহার করতে হবেঃ

[root@desktop ~]# grep ^root /etc/passwd

• নির্দির্ষ্ট প্যাটার্ন/কীওয়ার্ড দিয়ে লাইন শেষ হয়েছে, এমন লাইন বের করার জন্য ‘$’ ( Dollar sign) ব্যবহার করতে হবেঃ

[root@desktop ~]# grep bash$ /etc/passwd

• একাধিক প্যাটার্ন/কীওয়ার্ড খুঁজতে চাইলে ‘-e’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -e ‘root’ -e ‘student’ /etc/passwd

  • ডিরেক্টরির সকল ফাইলের মধ্যে প্যাটার্ন/কীওয়ার্ড খুঁজতে চাইলে ‘-r’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -r student /etc

  • নির্দির্ষ্ট প্যাটার্ন/কীওয়ার্ডের আগে/পরে ০৪ (চার) টি লাইন প্রিন্ট করতে চাইলে, নিচের কমান্ডঃ

[root@desktop ~]# grep -A 4 “games” /etc/passwd

[root@desktop ~]# grep -B 4 “games” /etc/passwd

  • সর্বমোট কত গুলো প্যাটার্ন/কীওয়ার্ড আছে, সেটা বের করতে ‘-c’ অপশন ব্যবহার করতে হবেঃ

[root@desktop ~]# grep -c ‘bash’ /etc/passwd

[sp_comments_block]