क्या grep / egrep के लिए 'rc' कॉन्फ़िगरेशन फ़ाइल है? (~ / .Egreprc?)


37

मैं आमतौर पर विकसित होने पर कुछ grep करता हूं, और कुछ एक्सटेंशन हैं जो मैं हमेशा (जैसे * .pyc) के लिए नहीं देखना चाहता हूं।

क्या एक ~ / .egreprc या ऐसा कुछ बनाना संभव है, और परिणाम में हमेशा pyc फाइल न दिखाने के लिए कुछ फ़िल्टरिंग करना चाहिए।

क्या यह संभव है, या मुझे इस तरीके से grep का उपयोग करने के लिए एक उपनाम बनाना होगा, और grep के बजाय अन्य नाम से कॉल करना होगा?

जवाबों:


66

Grep के लिए कोई आरसी फाइल नहीं है, लेकिन आप पर्यावरण चर GREP_OPTIONSको व्हाट्सएप-अलग-अलग विकल्पों की सूची में सेट कर सकते हैं जो सभी grep कमांड पर लागू होंगे। इसके लिए जीएनयू ग्रीप (गैर-एम्बेडेड लिनक्स, साइगविन और कुछ अन्य प्रणालियों पर कार्यान्वयन) 2.4 की आवश्यकता है; --excludeविकल्प जीएनयू ग्रेप 2.5 के लिए नया है। अपने में कुछ इस तरह रखो ~/.profile:

export GREP_OPTIONS='--color=auto --exclude=*.pyc --exclude-dir=.git'

यदि आपने ऐसा किया है, लेकिन उन डिफ़ॉल्ट विकल्पों के बिना एक बार grep चलाना चाहते हैं, तो आप उन्हें ओवरराइड कर सकते हैं (जैसे grep --color=neverरंगों को बंद करने के लिए) या GREP_OPTIONSचलने से चर को खाली कर सकते हैं GREP_OPTIONS= grep …

एक और संभावना है कि गैरीप के लिए उपनामों को परिभाषित करना। मैं निम्नलिखित के एक प्रकार का उपयोग करता हूं:

alias regrep='grep -Er --exclude=*~ --exclude=*.pyc --exclude-dir=.bzr --exclude-dir=.git --exclude-dir=.svn'

1
यह वह उत्तर है जिसकी मुझे तलाश थी। मुझे लगता है कि मैं ~ / .profile के बारे में अधिक पढ़ूंगा। @ गिल्स, तुम आदमी हो। मदद के लिए धन्यवाद!
कोई अभी भी आपको MS-DOS

1
ऐसा करने के लिए दो possibilites को ध्यान में रखते हुए (GREP_OPTIONS और अन्य उपनाम): क्या उनमें से एक पसंद है? क्यों या क्यों नहीं?
क्रिस्टोफ वर्म

4
@Lateate: एक महत्वपूर्ण अंतर यह है कि लिपियों में कॉल GREP_OPTIONSको प्रभावित करेगा grep, जबकि एक उपनाम नहीं होगा। तो GREP_OPTIONSसंयम से इस्तेमाल किया जाना चाहिए। सबसे आम उपयोग के लिए है --color=auto, जो सिद्धांत रूप में स्क्रिप्ट में हानिरहित है क्योंकि यह केवल तभी प्रभावी होता है जब आउटपुट टर्मिनल होता है।
गिल्स एसओ- बुराई को रोकना '

GREP_OPTIONS निकाला जाता है; कृपया एक उपनाम या स्क्रिप्ट का उपयोग करें
स्टीवन पेनी

3

ack आप क्या चाहते हैं और अधिक कर सकते हैं।

यह बाइनरी फाइलों को डिफ़ॉल्ट रूप से नजरअंदाज कर देगा और आप इसे अन्य फिलेटिप्स को नजरअंदाज करने के लिए कह सकते हैं --notext, जैसा कि आप चाहते हैं --nohtml, आदि। इसमें एक आरसी फाइल को परिभाषित करने की क्षमता है ताकि आप इसे अपने प्रकारों के साथ अनुकूलित कर सकें।


मैं ack का भी उपयोग कर रहा हूं, लेकिन मुझे यह पसंद नहीं आया। यह वास्तव में तेज़ है, लेकिन यह सभी स्थापनाओं में उपलब्ध नहीं है, इसलिए मैं grep के बारे में सोच रहा था। धन्यवाद!
कोई अब भी आपको MS-DOS

2
ack एक सिंगल पर्ल प्रोग्राम है, जो प्लेन टेक्स्ट फाइल के रूप में डाउनलोड किया जा सकता है। यदि आप चाहें, तो आप betterthangrep.com/ack-standalone पर जा सकते हैं और सामग्री को फ़ाइल में काट और पेस्ट कर सकते हैं । मैंने इसे विशेष रूप से बनाया है ताकि यह कहीं भी उपलब्ध हो आप पर्ल को चला सकते हैं।
एंडी लेस्टर

0

आपके सवाल का सीधा जवाब नहीं। लेकिन grep में * .pyc सहित सभी बाइनरी फ़ाइलों को अनदेखा करने का विकल्प है। विकल्प है-I

grep -rI hello .

0

जीएनयू grep/ में नहीं egrep, वहाँ नहीं है।

आप शायद ऐसा करने के लिए एक विशेष रूप से नामित उपनाम या स्क्रिप्ट चाहते हैं, क्योंकि किसी दिन बाद में आप अपने आप को बहुत उलझन में पा सकते हैं जब आप किसी ऐसी चीज़ को देखने की कोशिश कर रहे हैं जिसे आप अपने विशेष कॉन्फ़िगरेशन से मेल खाते हैं।


3
GREP_OPTIONSमें ~/.profileकरीब आता है।
गिल्स एसओ- बुराई को रोकें '

1
@ गिल्स - अच्छी बात है। वास्तव में, मैं भूल गया कि मैंने खुद को इसके लिए तैयार किया है --color=auto!
परिपक्वता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.