`एक` एक एकल फ़ाइल पर लाइन नंबर नहीं दिखाती है


17

मैं एक स्ट्रिंग के लिए खोज करने के लिए ack का उपयोग कर रहा हूं। जब मैं इसे एक फ़ाइल तर्क के बिना चलाता हूं, तो मुझे लाइन नंबर मिलते हैं:

$> ack function
themes/README.txt
7:Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

sites/default/default.services.yml
48:    # - The dump() function can be used in Twig templates to output information

...

लेकिन जब मैं एक फ़ाइल निर्दिष्ट करने की कोशिश करता हूं, तो मुझे लाइन नंबर नहीं मिलते हैं।

$> ack function themes/README.txt
Drupal's sub-theme functionality to ensure easy maintenance and upgrades.

मैं एक स्विच के लिए कुछ googling किया है, लेकिन कोई परिणाम नहीं मिला। मुझे एकल फ़ाइल से परिणामों पर मुझे लाइन संख्या दिखाने के लिए कैसे प्राप्त करना चाहिए?

जवाबों:


21

जब आप कोई फ़ाइल प्रदान नहीं करते हैं, तो ackवर्तमान निर्देशिका और उपनिर्देशिकाओं में सभी फ़ाइलों की खोज करेंगे। यदि किसी फाइल में मैचिंग पैटर्न है, तो ackउस फाइलनाम, लाइन नंबर और पैटर्न से मेल खाने वाली लाइन को प्रिंट करें।

यह व्यवहार एक फ़ाइल के लिए लागू नहीं होता है ( ack प्रलेखन देखें , -Hविकल्प खोजें)।

चूँकि जब विकल्प रेखा ackनहीं होती -nहै grep, जो कि रेखा उसके सापेक्ष रेखा संख्या के साथ मेल खाती है, तो आपके पास इस मुद्दे पर काम करने के लिए दो विकल्प हैं।

फोर्सेस ackप्रिंट फाइलनाम के साथ -H:

ack -H pattern file

या /dev/nullदूसरी फ़ाइल के रूप में गुजर रहा है :

ack pattern file /dev/null

7

आप विकल्प के साथ कोशिश कर सकते हैं --with-filename:

ack --with-filename 'function' themes/README.txt

इस मुद्दे को बग के रूप में उठाया गया है और इस मुद्दे को यहां स्थानांतरित किया गया है


5

इसके लिए एक विकल्प होना चाहिए। लेकिन अगर वहाँ नहीं है, तो आप ackसोच सकते हैं /dev/nullकि कमांड लाइन पर एक अतिरिक्त पास करके खोज करने के लिए दो फाइलें हैं :

ack function themes/README.txt /dev/null

एक साइड नोट पर, एक ही ट्रिक का उपयोग grep(1)आपको एक फ़ाइल नाम खोजते समय भी एक फ़ाइल नाम दिखाने के लिए किया जा सकता है :

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