ack
(инструмент grep
написан на Perl) не находит файл, который grep -r
находит, и я не могу найти нужные параметры, чтобы заставить его работать. Ниже показано, что ack
не нашел целевую строку, которая находится в обычном файле в подкаталоге. Это на Баш оболочки (Ubuntu 11.04):ack не делает рекурсивный grep
100 $ grep -r imbue *
hel/find: the fact that some shells including Bash imbue braces
## Note: grep find it as shown in the above.
101 $ ./ack-standalone imbue
## Note: ack didn't find it as shown in the above.
102 $ ./ack-standalone --version
ack 1.96
Running under Perl 5.10.1 at /usr/bin/perl
Copyright 2005-2011 Andy Lester.
This program is free software. You may modify or distribute it
under the terms of the Artistic License v2.0.
## This is the testing folder structure:
103 $ tree
.
ack-standalone
hel
|- dot
|- find
|- grep
|- jobs
perlman
perlre
perlrequick
perlrun
perlvar
xargs
1 directory, 11 files
Version 2 АСК, от APT-получить установку пакета, получили те же результаты. В автономной версии (версия 1), показанной выше. ack -f
ничего не показывает, и я пробовал опции -r
и *
, все с одинаковыми результатами.
На другой машине Ubuntu 10.04 она работает как шарм.
с '-a' варианта, это начать Работа. –
Ack 1.x ищет файлы только тех типов, которые он понимает. В принципе, ack ищет только исходный код в файлах, которые он распознает в качестве исходного кода на основе расширения. Это НЕ универсальная замена grep. Кроме того, в примере 'ack -a imbue *' там '*' не следует включать. Вы никогда не хотите указывать имя файла для ack, если у вас нет причины указывать имя файла для ack. –
«Это не универсальная замена grep». В первой строке справочной страницы 'ack' указано:« Ack разработан как замена для 99% использования grep ». – jwg