आप एक विशेष फ़ाइल को ack(ack-grep) से कैसे निकालते हैं?




(4)

सामान्य grep कमांड के साथ एक --exclude विकल्प होता है (यहाँ विस्तार से कवर किया गया है: grep --exclude का उपयोग करें - कुछ फ़ाइलों के माध्यम से grep नहीं करने के लिए सिंटैक्स शामिल करें ) जिससे आप विशिष्ट फ़ाइलों को अनदेखा कर सकते हैं जब आप grepping कर रहे हों।

Ack --type विकल्प उन 95% मामलों का ध्यान रखता है, जहाँ आप फ़ाइलों को बाहर करना चाहते हैं, लेकिन यह (जहाँ तक मैं बता सकता हूँ) एक विशिष्ट फ़ाइल को बाहर करने के मामले को नहीं संभालता है। मुझे एक संकलित JS फ़ाइल मिली है जिसमें हर दूसरी JS फ़ाइल की सामग्री है (एक पंक्ति में), इसलिए हर बार जब मैं किसी भी चीज़ के लिए grep करता हूं तो मुझे उस विशाल संकलित फ़ाइल की संपूर्ण सामग्री वापस मिल जाती है।

मैं एक पर छोड़ देना होगा और इस पर वापस जाने के लिए नफरत है, लेकिन यह वास्तव में कष्टप्रद है। कृपया, कोई मुझे बताए कि ऐक खोजों से विशिष्ट फ़ाइलों को बाहर करने का एक तरीका है।


Ack 2.0 का उपयोग करके किसी एकल फ़ाइल को अनदेखा करने के लिए, --ignore- फ़ाइल फ़्लैग को फ़िल्टर युक्ति प्रदान करें:

--ignore-file=is:cljout.js


Ack2.0 के साथ जानने के लिए भी अच्छा है, आप इन विकल्पों को एक .ackrc फ़ाइल में निर्दिष्ट कर सकते हैं यदि आपको अक्सर फ़ाइलों को फ़िल्टर करना पड़ता है।


यदि आप ack --create-ackrc यह सामान्य फ़ाइलों के लिए प्रीसेट का एक पूरा गुच्छा जैसे कि minified जावास्क्रिप्ट, css और डायरेक्टरी जैसे node_modules और ack --create-ackrc को आउटपुट करेगा। बहुत उपयोगी!

यहाँ पर मिनिमम js विकल्प है:

# minified Javascript
--ignore-file=match:/[.-]min[.]js$/
--ignore-file=match:/[.]js[.]min$

यदि आप इसे .ackrc रन में सहेजना चाहते हैं

ack --create-ackrc >> ~/.ackrc

और फिर उस फ़ाइल से आपको जो कुछ भी नहीं चाहिए उसे हटा दें।


यदि आप विशिष्ट फ़ोल्डर को बाहर करना चाहते हैं, तो निम्नलिखित आदेश आपकी मदद कर सकते हैं:

ack keywords --ignore-dir folder_name

man ack आगे विवरण प्रदान करेगा :)

- [नहीं] इग्नोर-डीर = डर्नेम, - [नहीं] इग्नोर-डाइरेक्टरी = डर्नेम

--ignore-फ़ाइल = FILTERTYPE: FILTERARGS