Grep -n --colour के साथ grep कमांड बदलें?


17

क्योंकि मैं आलसी हूं .... किसी भी समय मैं grep का उपयोग करना चाहता हूं, मैं चाहता हूं कि यह grep -n --colour हो। क्या इसे स्थायी रूप से मानचित्रित करने का कोई तरीका है?


6
+1 के लिए "क्योंकि मैं आलसी हूँ ..."। कभी एक डेवलपर के रूप में एक कैरियर माना जाता है? :)
हेंनिबल लेक्टर

जवाबों:


31

अपनी $ HOME / .bashrc फ़ाइल में, जोड़ें:

export GREP_OPTIONS="-n --color"

यह egrepबहुत से और उपनामों के साथ काम करेगा जो ग्रीप का उपयोग करते हैं।

अपडेट : GREP_OPTIONS को grep 2.21 से हटा दिया गया है और यदि आप इस समाधान का उपयोग करते हैं, तो आप निम्नलिखित प्रतिक्रिया देखेंगे:

grep: warning: GREP_OPTIONS is deprecated; please use an alias or script

इसलिए सबसे अच्छा उपाय है कि उसके जवाब में मैको की सलाह का पालन ​​करें । या एजी का उपयोग करने के लिए स्विच करें , जो डिफ़ॉल्ट रूप से रंग में आउटपुट करता है।


आदर करना।
myusuf3

4
सम्मान लेकिन कोई अपवित्र नहीं, एह? ;-)
ऋचीक

1
उपनाम का उपयोग पाइप के ठीक बाद किया जा सकता है। वे सिर्फ पुनरावृत्ति नहीं करते हैं।
मकाओ

1
हे हे, मैं उत्थान किया। मुझे अलिया से बेहतर यह पसंद है।
दिमित्रि लखटेन

@ मार्को: आप सही हैं (बैश के साथ) - मैं csh के बारे में सोच रहा था, जहाँ वे नहीं कर सकते। ऊप्स!
रिक्टर

29

संपादित करें ~ / .bash_aliases एक पंक्ति जोड़ें जो कहती है:

alias grep='grep -n --color'

अगर यह मौजूद है तो ~ / .bash_aliases स्वचालित रूप से ~ / .bashrc द्वारा शामिल किया जाता है


8
या .profileयदि आप इसे सभी गोले में काम करना चाहते हैं तो बस लाइन न जोड़ें ।
लासपुलसेन

1
यह xargs के साथ काम नहीं करेगा जैसे:find /usr/share -name '*.txt' |xargs grep testing
rfabbri

2

आप फ़ाइल को संशोधित कर सकते हैं। अपने घर की निर्देशिका में स्थित .bashrc एक उपनाम को परिभाषित करता है, जो किसी भी डिफ़ॉल्ट सेटिंग को ओवरराइड करेगा:

उर्फ ग्रीप = 'ग्रीप-एन - रंग

परिवर्तन के बाद टर्मिनल को फिर से खोलें और खोलें क्योंकि टर्मिनल को खोलने के बाद ही फाइल को पढ़ा जाता है।

यदि आप फ़ाइल पर एक नज़र डालते हैं तो .bashrc आपको अधिक डिफ़ॉल्ट उपनाम मिलेंगे:

उर्फ ll = 'ls -l'

उर्फ ला = 'ls -A'

उर्फ एल = 'एलएस -सीएफ'


1

अन्य उत्तरों में उल्लिखित एक उपनाम के अलावा एक स्क्रिप्ट बनाएं। अपने आप से एक उपनाम हमेशा काम नहीं करेगा, और एक स्क्रिप्ट परत मानव पठनीय आउटपुट वैसे भी काफी तेजी से है।

एक छोटा नाम चुनें, जैसे cgrep:

#!/bin/sh
grep --color -n "$@"

इसे अपने पथ में रखें, कहें ~/bin(यदि आप UPE पढ़ते हैं तो यह आपके पथ में है :)। फिर इस तरह से काम करेगा सामान:

find /usr/share -name '*.txt' | xargs cgrep testing

मैं अभी भी खुश नहीं हूं, मैं भी चाहता था कि हमेशा रंग में रंगे जब एक टर्मिनल के लिए stdout चुनिंदा टाइपिंग cgrep के बिना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.