কিভাবে grep দিয়ে একটি শব্দ বাদ দিতে হয়
সুচিপত্র:
গ্রেপ কমান্ড লাইন টুলটি একটি সংজ্ঞায়িত স্ট্রিং, অক্ষর, শব্দ বা রেগুলার এক্সপ্রেশনের সাথে মেলে এমন লাইন এবং স্নিপেটের জন্য টেক্সট ডেটার মাধ্যমে অনুসন্ধান করার জন্য খুবই উপযোগী। যদিও grep-এর বেশিরভাগ ব্যবহারই সিনট্যাক্স ম্যাচের জন্য ডেটা সাজানোর জন্য, আপনি যদি পরিবর্তে grep-এর সাথে একটি শব্দ বা স্ট্রিং বাদ দিতে চান? grep-এর সাথে লাইনের মিলগুলি বাদ দেওয়া grep-এ মিলগুলি খুঁজে বের করা এবং মুদ্রণ করার মতোই সমানভাবে কার্যকর, তাই আসুন কীভাবে স্ট্রিং মিলগুলি বাদ দেওয়া যায় এবং grep-এর সাথে শব্দগুলি বাদ দেওয়া যায় তা কভার করি।
অবশ্যই আপনি কিছু কমান্ড লাইন অভিজ্ঞতা এবং গ্রেপের এক্সপোজার পেতে চাইবেন এটি দরকারী খুঁজে পেতে। আপনি যদি অনুসরণ করতে চান তবে আপনি টার্মিনাল অ্যাপ্লিকেশনটি খুলতে পারেন এবং নিজে চেষ্টা করে দেখতে পারেন। যেহেতু গ্রেপ একটি ওএস অজ্ঞেয়বাদী ইউটিলিটি, আপনি ম্যাক ওএস, লিনাক্স, ইউনিক্স বা অন্য যেকোন কিছুতে গ্রেপ ব্যবহার করে এক্সক্লুড ট্রিক ব্যবহার করতে পারেন।
গ্রেপ দিয়ে কিভাবে একটি শব্দ বাদ দেওয়া যায়
একটি স্ট্রিং বা সিনট্যাক্স ম্যাচের সাথে লাইন বাদ দেওয়ার সবচেয়ে সহজ উপায় হল grep এবং -v পতাকা ব্যবহার করা।
উদাহরণস্বরূপ, ধরা যাক আমরা কমান্ড লাইনে একটি ফাইল প্রিন্ট করার জন্য cat ব্যবহার করছি, কিন্তু আমরা "ThisWord" শব্দটি অন্তর্ভুক্ত করে এমন সমস্ত লাইন বাদ দিতে চাই, তাহলে সিনট্যাক্সটি অনুসরণ করবে:
cat example.txt | grep -v This Word"
আউটপুটটি example.txt টেক্সট ফাইল হবে কিন্তু "ThisWord" এর সাথে একটি স্ট্রিং মিল আছে এমন যেকোন লাইন বাদ দিয়ে।
আপনি সরাসরি ফাইলে grep ব্যবহার করতে পারেন এবং শব্দ বা বাক্য গঠনের উপর ভিত্তি করে লাইন মিল বাদ দিতে পারেন, যেমন:
"grep -v ThisWord>"
আপনার নির্দিষ্ট কর্মপ্রবাহের জন্য যেটি সবচেয়ে ভালো হয় তা ব্যবহার করুন।
গ্রেপ দিয়ে একাধিক স্ট্রিং বা শব্দ বাদ দেওয়ার উপায়
এখন আপনি জানেন কিভাবে একটি একক শব্দের মিল বাদ দিতে হয়, পরবর্তী সুস্পষ্ট প্রশ্ন হল grep সহ একাধিক শব্দ বাদ দেওয়া। এটি সমানভাবে সহজ, এবং -v পতাকার পাশাপাশি -e পতাকা ব্যবহার করে এটি সম্পন্ন করার কয়েকটি ভিন্ন উপায় রয়েছে৷
প্রথমে গ্রেপ করার জন্য পাইপ করা ফাইলে cat ব্যবহার করার উপরের উদাহরণটি নেওয়া যাক এবং দুটি শব্দের সাথে মিলে যাওয়া যেকোন লাইন বাদ দেওয়া যাক; "Word1" এবং "Word2", এটি নিচের মত দেখাবে:
"cat example.txt | grep -v -e Word1 -e Word2"
যে কোন লাইনে "Word1" বা "Word2" আছে মুদ্রিত ফলাফল থেকে বাদ দেওয়া হবে।
আপনি আগের মতোই সরাসরি ফাইলে grep ব্যবহার করতে পারেন:
"grep -v -e Word1 -e Word2 example.txt"
আরেকটি পন্থা হল প্রতিটি ম্যাচ আলাদা করার জন্য একটি পাইপ ব্যবহার করে গ্রেপের সাথে কী বাদ দিতে হবে তা আলাদা করা, যেমন:
grep -Ev word1|word2 example.txt"
আপনি যদি একটি উদাহরণ টেক্সট ফাইলে এই বিকল্পগুলির যে কোনো একটি পরীক্ষা করে দেখেন, আপনি দেখতে পাবেন যে আউটপুট আপনি যে পদ্ধতিই গ্রহণ করুন না কেন, প্রতিটি লাইন বাদ দিয়ে লক্ষ্যযুক্ত বাক্যাংশ, বাক্য গঠন, শব্দ বা পাঠ্য মিল।
দারুণ, গ্রেপের সাথে ডেটা বাদ দেওয়ার একটি দরকারী উদাহরণ দেখান!
একটি বাস্তব উদাহরণের জন্য যা উন্নত ম্যাক ব্যবহারকারীদের সহায়ক হতে পারে, আমরা ডিফল্ট মিলগুলি খুঁজে পেতে পূর্বে কার্যকর করা কমান্ডগুলি খুঁজে বের করতে কমান্ড লাইন ইতিহাস মুদ্রণ এবং অনুসন্ধান করার সময় গ্রেপ এক্সক্লুশন ব্যবহার করতে পারি, কিন্তু কিছু নির্বাচিত ডিফল্ট স্ট্রিং বাদ দিয়ে আউটপুট।
এখানে উদাহরণে আমরা ডিফল্ট স্ট্রিং ম্যাচের জন্য কমান্ড হিস্টোরি প্রিন্ট করব, কিন্তু আইটিউনস এর সাথে “com.apple.itunes” দ্বারা সংজ্ঞায়িত করা হয়েছে এমন কিছু বাদ দিব:
"history |grep ডিফল্ট লিখুন |grep -v -e com.apple.itunes"
সুতরাং আপনি যদি অনুসরণ করে থাকেন তবে এটি "ডিফল্ট লিখুন" কমান্ডের সমস্ত ঐতিহাসিক মৃত্যুদন্ডের রিপোর্ট করবে, তবে iTunes অ্যাপ্লিকেশনের সাথে সম্পর্কিত যেকোন কিছু বাদ দিয়ে। চমৎকার?
আপনি যদি গ্রেপের সাথে ম্যাচগুলি বাদ দেওয়ার বিশেষভাবে সুবিধাজনক ব্যবহার করে থাকেন তবে নীচের মন্তব্যে সেগুলি আমাদের সাথে ভাগ করুন! এবং আপনি যদি এই নিবন্ধটি উপভোগ করেন, আপনি অবশ্যই আমাদের অনেক কমান্ড লাইন নিবন্ধগুলি এখানে ব্রাউজ করতে পছন্দ করবেন যেখানে আরও অনেক কিছু শেখার আছে!