উত্তর:
grep
কমান্ড একটি গ্রহণ --color=always
বিকল্পটি যাতে আপনি ব্যবহার করতে পারেন
grep 'keyword1' file.log --color=always | grep 'keyword2'
জার্টভিডিজক যেমন উল্লেখ করেছেন , এই কমান্ডটি অদক্ষ হতে পারে তবে এটি কীওয়ার্ড 1 এবং কীওয়ার্ড 2 উভয় ধারণ করে এমন সমস্ত রেখার সন্ধান করবে। আপনি যদি তাদের বিভিন্ন রঙে হাইলাইট করতে চান তবে আপনি ব্যবহার করতে পারেন
grep 'keyword1' file.log --color=always | GREP_COLORS="mt=01;34" grep --color=always 'keyword2'
যা নীচে কীওয়ার্ড 2 হাইলাইট করবে। mt
অংশ মানে হল যে grep
এই ব্যবহার ম্যাচিং হাইলাইট করা পাঠ্য হবে সিএসআই কোড , এবং 01;34
মানে হলো "স্বাভাবিক পটভূমিতে সাহসী নীল ফোরগ্রাউন্ড"।
grep -R --color=always keyword1 . | grep keyword2
কাজ করা উচিত। (যেমন দ্বিতীয় বংশীধ্বনিতুল্য দ্বারা হিসাবে আবার আউটপুট পুনঃনির্দেশিত হচ্ছেন grep
মধ্যে less -R
)? যদি তা হয় তবে --color=always
আপনাকে দ্বিতীয়টিও যুক্ত করতে হবে।
--color=auto
জন্য, দ্বিতীয়টির জন্য একটি প্রয়োজন হবে grep
, ঠিক তার পরে 'keyword2'
।
--color=always
উত্তরে যুক্ত করেছি, কারণ আপনি এটি less
বা অন্য কিছুতে পাইপ করতে চাইতে পারেন ।
অন্য কোনও উদাহরণে পাইপ না করে প্রকৃত নিয়মিত প্রকাশের চেষ্টা করুন grep
, যেমন:
grep -E "\<foo\>.*\<bar\>" file
দুর্ভাগ্যক্রমে, এই ক্রমটি কীওয়ার্ডগুলি কেবল এই ক্রমে মেলে তার সাথে এটি মিলছে lines যাইহোক, grep
আপনার প্রশ্নে ব্যবহারটি বরং অদক্ষ এবং আপনার এড়ানো উচিত। @DanielH উত্তর সম্ভবত আপনার ক্ষেত্রে জন্য প্রায় কাছাকাছি আরো সহজবোধ্য।
একটি বা 'কীওয়ার্ডের মিল' এর জন্য, আমি এটি নিয়মিত ব্যবহার করি:
grep -E "(foo|bar)" file
foo.*bar|bar.*foo
, বা যদি এই মামলার জন্য এমনকি এটি প্রয়োজনীয় হয় (যা লগ ফাইল হিসাবে উপস্থিত হয় যা সম্ভবত কীওয়ার্ডগুলির জন্য একটি মানক অর্ডার থাকবে)। আপনি নিজের আপডেট করার আগে আমি আমার উত্তরটি যুক্ত করেছিলাম, তবে শৃঙ্খলিত হওয়া grep
সত্যিই প্রয়োজনের মতো পরিস্থিতিতে (বা অন্য কোনও সময় রঙিন আউটপুট টার্মিনালে প্রেরণ করা উচিত নয়, যেমন grep | less -R
) আমি এটিকে ঘিরে রাখব ।