উত্তর:
এর সাথে --color=auto, গ্রেপ মেলানো স্ট্রিংগুলি হাইলাইট করবে যদি (এবং কেবলমাত্র) আউটপুটটি সরাসরি টার্মিনালে লিখিত হয় এবং বলে যে টার্মিনাল রঙিন আউটপুট প্রদর্শন করতে সক্ষম।
সাধারণত, --color=autoআপনি চান কি। যদি, উদাহরণস্বরূপ, আপনি কোনও ইউআরএল মেলানোর জন্য গ্রেপ ব্যবহার করেন এবং এটিকে ওয়াজেটে পাইপ করেন \e[1;31mhttp://...তবে আসল ইউআরএলের পরিবর্তে উইজেট দেখতে পাবেন (এবং এটির উপরে চাপ দিন)।
নিম্নলিখিত আদেশগুলি রঙিন আউটপুট হতে হবে:
echo Super User | grep --color=auto Super
echo Super User | grep --color=always Super | cat
এই আদেশটি অবশ্য করা উচিত নয়:
echo Super User | grep --color=auto Super | cat
এই আচরণের সাথে কোনও অসঙ্গতি একটি বাগ হিসাবে বিবেচনা করা উচিত।
সাথে --color=auto, উইন্ডোজ সংস্করণের জন্য সর্বশেষ গ্রেপ (2.5.4) - পাশাপাশি মূল 2.5.4 এর উপর ভিত্তি করে - আউটপুটটি রঙ করুন যদি এবং শুধুমাত্র শর্ত থাকে
isatty(STDOUT_FILENO) && getenv("TERM") && strcmp(getenv("TERM"), "dumb")
সত্য, অর্থাত্ যদি এবং কেবলমাত্র যদি আউটপুট টার্মিনালে লেখা হয়, পরিবেশের পরিবর্তনশীলTERM সংজ্ঞায়িত হয় এবং টার্মিনাল বোবা হয় না ।
এটি উইন্ডোজের অধীনে পছন্দসই আচরণ তৈরি করে না, যেহেতু TERMসাধারণত সংজ্ঞায়িত হয় না। এই সমস্যার সহজ সমাধান হ'ল TERM=windowsনিয়ন্ত্রণ প্যানেলে সেটিংস স্থাপন করা ।
গ্রেপ (2.14) এর সর্বশেষতম সংস্করণটি যদি শর্তটি থাকে এবং শুধুমাত্র যদি আউটপুটটিকে রঙ করে এই সমস্যাটিকে ঠিক করে দেয়
isatty(STDOUT_FILENO) && should_colorize()
সত্য, যেখানে should_colorize()পসিক্স এবং উইন 32 এর জন্য আলাদাভাবে সংজ্ঞায়িত করা হয়েছে:
পূর্বেরদের জন্য, শর্তটি 2.5.4 এর একটির সমান; পরবর্তীকালের জন্য, পরিবেশগত পরিবর্তনশীল TERMসেট করতে হবে না (এটি কেবল হতে পারে না dumb)।
sdgstd.h, istty(stdout)ফেরৎ 0যদি আউটপুট একটি ফাইল থেকে আপনাকে পুনঃনির্দেশিত করা হয়।
grepএবং lessGnuWin প্রকল্প থেকে (gnuwin32.sourceforge.net)। ইউটিলিটি cmd.exeসহ উন্নত করা হয় ansicon। less --color=autoপ্রত্যাশিত হিসাবে কাজ করে: কোনও পুনর্নির্দেশ প্রয়োগ না করা হয় এবং আউটপুট পুনঃনির্দেশিত হয় না যখন রঙ ব্যবহার করে। তবে grep --color=autoউভয় ক্ষেত্রেই পালানোর সিকোয়েন্সগুলি মুদ্রণ করে না।