`ack` не показує номери рядків у одному файлі


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.

Я зробив кілька гуглів для перемикання, але не знайшов результатів. Як змусити мене показати номер рядків за результатами одного файлу?

Відповіді:


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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.