अगर मैं दो लगातार grepआदेशों का उपयोग करता हूं , जैसे:
echo "foo bar" | grep foo | grep bar
तब पहला पैटर्न ("फू") हाइलाइट नहीं किया गया है। वास्तव में, ऐसा लगता है कि grep अपने इनपुट से रंग कोड हटाता है। क्या इसे रोकने का कोई तरीका है?
अगर मैं दो लगातार grepआदेशों का उपयोग करता हूं , जैसे:
echo "foo bar" | grep foo | grep bar
तब पहला पैटर्न ("फू") हाइलाइट नहीं किया गया है। वास्तव में, ऐसा लगता है कि grep अपने इनपुट से रंग कोड हटाता है। क्या इसे रोकने का कोई तरीका है?
जवाबों:
का उपयोग करें --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
हालाँकि परिणामी फ़ाइल में बहुत सीमित पोर्टेबिलिटी होगी।
रंग खुद भी एक विस्तार है।
जैसा कि अच्छे @slm द्वारा बताया गया है , आप जोड़ सकते हैं:
export GREP_OPTIONS="--color=always"
अपने .bashrcआदि के लिए, लेकिन जब तक आप किसी कारण से वास्तव में निहितार्थ को नहीं समझते हैं और तब भी ऐसा करना चाहते हैं। यह 1 सेgrep ऊपर वर्णित तथ्य के कारण कई तरह से टूट जाएगा ।
aliasयदि आप इसे अक्सर उपयोग करते हैं तो जोड़ें ।
alias cgrep='grep --color=always'
GREP_OPTIONSऔर --color तीन विकल्प ले : never, autoऔरalways । पहले दो को ही माना जाना चाहिए GREP_OPTIONS।
तुम भी बाहर की जाँच कर सकता है GREP_COLORSमें manपृष्ठों या पर जीएनयू ग्रेप ।
export GREP_OPTIONS="--color=always"a .bashrc विकल्पों को किसी भी greps के लिए चूक बनाता है, और आपने इसे बहुत अधिक लाभ लिया है!