फ़ाइल नाम के लिए खोज करने के लिए ack का उपयोग कैसे करें


16

मैंने ack का उपयोग करना शुरू कर दिया है जो कि grep की तुलना में बहुत तेज है। हालाँकि ack का उपयोग करके मैं फ़ाइल सामग्री के बजाय फ़ाइल नाम की खोज करना चाहता हूँ। क्या ऐसा करने के लिए कोई रास्ता है?

जवाबों:


16

सही काम के लिए सही टूल का उपयोग करें। यदि आप फ़ाइल नाम खोजना चाहते हैं, तो 'खोजें' का उपयोग करें:

$ # search for all *.txt file in current directory
$ find . -iname "*.txt"

1
बिल्कुल सच। "एक बार जब आप अपने हाथ में एक हथौड़ा पकड़ लेते हैं तो सब कुछ एक नाखून की तरह
लगने लगता है

2
ठीक है, ack (और grep) अच्छे हैं क्योंकि आपको regexes के बारे में स्पष्ट नहीं होना है जब तक आप नहीं चाहते हैं। मैं आम तौर पर सिर्फ एक करता हूंfind . | ack whatev.ext
एहतेश चौधरी

यह निर्देशिका को खोजने के लिए भी काम करता है।
प्रतीक खदलोया

1
ढूँढें और ack अलग-अलग व्यवहार करते हैं क्योंकि ack डिफ़ॉल्ट रूप से बहुत सारे परिणामों को फ़िल्टर करता है (संस्करण नियंत्रण निर्देशिका की सामग्री, एक स्रोत भंडार में संकलित वस्तुएं) जो खोज द्वारा शामिल की जाएंगी। सबसे अच्छा हथौड़ा आपके इच्छित परिणामों पर निर्भर करता है।
जोशुआ गोल्डबर्ग

1
यह सवाल का जवाब नहीं दे रहा है ...
lajarre

24
ack -g REGEX

उन फ़ाइलों को प्रिंट करें जहाँ संबंधित पथ + फ़ाइल नाम REGEX से मेल खाता है


1
जोड़ने के [^/]*$अपने REGEX केवल फ़ाइल नाम में खोज करने के लिए करने के लिए
साइमन

7

मैं मानता हूँ कि अगर आप सिर्फ * .txt फ़ाइलों की खोज कर रहे हैं तो इसका उपयोग करने के लिए समझ में आता है। हालाँकि, ack में शक्तिशाली फ़ाइल-प्रकार डिटेक्शन सुविधाएँ हैं, जिससे आप उपयोग कर सकते हैं

ack -f --perl

जो फ़ाइल नाम (* .pm, * .pl, * .t और * .pod) और शेबंग लाइन दोनों के आधार पर सभी पर्ल फ़ाइलों को खोजेगा।


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