যদি আমি পরপর দুটি grepকমান্ড ব্যবহার করি , যেমন:
echo "foo bar" | grep foo | grep bar
তারপরে প্রথম প্যাটার্ন ("foo") হাইলাইট করা হয় না। আসলে, দেখে মনে হচ্ছে যে গ্রেপ তার ইনপুট থেকে রঙের কোডগুলি সরিয়ে দেয়। এটি রোধ করার কোনও উপায় আছে কি?
যদি আমি পরপর দুটি grepকমান্ড ব্যবহার করি , যেমন:
echo "foo bar" | grep foo | grep bar
তারপরে প্রথম প্যাটার্ন ("foo") হাইলাইট করা হয় না। আসলে, দেখে মনে হচ্ছে যে গ্রেপ তার ইনপুট থেকে রঙের কোডগুলি সরিয়ে দেয়। এটি রোধ করার কোনও উপায় আছে কি?
উত্তর:
ব্যবহার --color=always।
grepপাইপ (বা ফাইল) এ আউটপুট থাকলে সনাক্ত করে। আউটপুট ফাইল করার সময় আপনি কখনই রঙ চান না - কারণ এটি টার্মিনালের জন্য এস্কেপ ক্রম। সাধারণত:
foo ^[[01;31m^[[Kbar^[[m^[[K
যেমন থেকে:
grep pattern file > result
ওভাররাইড ব্যবহার --color=always।
grep --color=always pattern file | ...
উদাহরণ:
ফাইল থাকা:
ID=111;Year=2013;foo=bar
ID=222;Year=2013;foo=baz
তারপর
grep --color=always ID file | grep --color=always 2013 | grep foo
রঙ হবে ID, 2013এবং foo।
grep --color=always ID file | grep 2013 | grep foo
রঙ হবে IDএবং foo, কিন্তু না 2013।
1 গুরুত্বপূর্ণ: আপনার এটিও মনে রাখতে হবে যেরঙগুলি থেকেযুক্ত বিশৃঙ্খলা শৃঙ্খলে পরবর্তী কমান্ডে প্রেরণ করা হয়েছে। একবার আইডি রঙিন হয়ে গেলে আপনি (স্বাচ্ছন্দ্যে) মেলাতে পারবেন নাID=111।
কিছু উপলক্ষে কেউ সম্ভবত ফাইলের মধ্যে টার্মিনাল রঙ চান । যেমন চেষ্টা করুন
grep --color=always foo file > result
cat result
যদিও ফলাফল ফাইল খুব সীমিত বহনযোগ্যতা হবে।
রঙ নিজেই একটি এক্সটেনশন।
ভাল @ এসএলএম দ্বারা উল্লিখিত হিসাবে , আপনি যুক্ত করতে পারেন:
export GREP_OPTIONS="--color=always"
আপনার .bashrcইত্যাদির কাছে, তবে আপনি যদি কোনও কারণে সত্যই বোঝা যায় না এবং এখনও তা করতে চান না don't এটি 1 টিgrep উপরে উল্লিখিত সত্যের কারণে বিভিন্নভাবে ভেঙে যাবে ।
aliasযদি আপনি এটি প্রায়শই ব্যবহার করেন তবে একটি যুক্ত করুন ।
alias cgrep='grep --color=always'
GREP_OPTIONSএবং --color তিনটি বিকল্প নেওয়া : never, autoএবং always। দুটি প্রথমে বিবেচিত হওয়া উচিত GREP_OPTIONS।
আপনি পৃষ্ঠাগুলিতে বা gnu গ্রেপ এও পরীক্ষা GREP_COLORSকরে দেখতে manপারেন ।
export GREP_OPTIONS="--color=always"একটি .bashrc এ বিকল্পগুলি যে কোনও গ্রেপের জন্য ডিফল্ট করে তোলে এবং আপনি এটি বেশ পেরেক দিয়েছিলেন!