Ack не делает рекурсивный grep - PullRequest
4 голосов
/ 28 марта 2012

ack (инструмент grep, написанный на Perl) не находит файл, который находит grep -r, и я не могу найти правильные варианты, чтобы заставить его работать. Ниже показано, что ack не нашел целевую строку, которая находится в обычном файле в подкаталоге. Это в оболочке Bash (Ubuntu 11.04):

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

Версия 2 ack, из установки пакета apt-get, получила те же результаты. В автономной версии (версия 1) показано выше. ack -f ничего не показывает, и я попробовал опции -r и *, все с одинаковыми результатами.

На другой машине, Ubuntu 10.04, она работает как шарм.

1 Ответ

8 голосов
/ 28 марта 2012

Это работает для меня, если я выбираю работать со всеми файлами независимо от их типа, используя переключатель -a (моя версия совпадает с вашей):

ack -a imbue *
...