'ack' не показывает номера строки на единственном файле

menuentry "Debian Wheezy" {
insmod ext4
set root='(hd0,msdos5)'
echo 'loading ..'
linux /boot/vmlinuz-3.2.0-3-amd64
echo 'starting kernel ...'
initrd /boot/initrd.img-3.2.0-3-amd64
}
17
04.05.2015, 20:13
3 ответа

Если вы не предоставите ни одного файла, ack будет искать все файлы в текущем каталоге и подкаталогах. Если файл содержит соответствующий шаблон, то ack распечатает имя файла, номер линии и линию, которая соответствовала шаблону.

Это поведение не относится к одному файлу (см. ack документация, поиск по опции -H).

Так как когда ack не имеет опции -n grep grep, которая будет печатать строку, совпадающую с ее относительным номером, у вас есть два варианта, чтобы обработать эту проблему.

Принудительная печать ack имени файла с -H:

ack -H pattern file

или передача /dev/null в качестве второго файла:

ack pattern file /dev/null
21
27.01.2020, 19:46

Вы можете попробовать с опцией - с именем исполнителя :

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

Этот вопрос поднимается как ошибка , а вопрос был перенесен сюда .

7
27.01.2020, 19:46

Для этого должна быть возможность. Но если его нет, то можно обмануть ack, думая, что есть два файла для поиска, передав в командной строке дополнительный /dev/null:

ack function themes/README.txt /dev/null

На заметке, этот же трюк можно использовать, чтобы grep(1) показал вам имя файла, даже если вы ищете один файл:

grep function themes/README.txt /dev/null
5
27.01.2020, 19:46

Теги

Похожие вопросы