4
ack
(grep
ツールはPerlで書かれています)grep -r
が見つかったファイルが見つからず、正しく動作するための正しいオプションが見つかりません。以下は、ack
がサブディレクトリの通常のファイルにあるターゲット文字列を見つけられなかったことを示しています。それは(Ubuntuの11.04)Bashシェルの上にあります:ACKの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
バージョン2、apt-getのパッケージのインストールから、同じ結果を得ました。上記のスタンドアロン版(バージョン1)。 ack -f
は何も表示せず、同じ結果を持つ-r
と*
オプションを試しました。
別のマシンでは、Ubuntu 10.04は、魅力的に動作します。
を、それが開始作業。 –
Ack 1.xは、理解できるタイプのファイルのみを検索します。基本的には、ackは拡張子に基づいてソースコードとして認識するファイル内のソースコードのみを検索します。これは一般的なgrepの置換ではありません。また、 'ack -a imbue *'の例では、 '*'を含めてはいけません。 ackにファイル名を指定する理由がない限り、ackにファイル名を指定することは決してありません。 –
'これは一般的なgrep置換ではありません。 'ack'マニュアルページの最初の行には、" Ackはgrepの99%の使用に代わるものとして設計されています。 " – jwg