ack
(die grep
in Perl geschriebene Tool) findet keine Datei, die grep -r
findet, und ich kann nicht die richtigen Optionen finden, um es zur Arbeit zu bekommen. Die folgende Tabelle zeigt, dass ack
die Zielzeichenfolge, die sich in einer regulären Datei in einem Unterverzeichnis befindet, nicht gefunden hat. Es ist auf Bash-Shell (Ubuntu 11.04):ack macht keine rekursive 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 von ack, von apt-get Paketinstallation gleichen Ergebnisse erhielt. In der oben gezeigten Stand-Alone-Version (Version 1). ack -f
zeigt nichts, und ich habe die -r
und *
Optionen versucht, alle mit den gleichen Ergebnissen.
Auf einer anderen Maschine, Ubuntu 10.04, funktioniert es wie ein Charme.
mit der '-a' Option, es beginnt Arbeit. –
Ack 1.x sucht nur Dateien von Typen, die es versteht. Grundsätzlich durchsucht ack nur den Quellcode in Dateien, die aufgrund der Erweiterung als Quellcode erkannt werden. Es ist kein allgemeiner Ersatz für Grep. Auch im 'ack -a imbue *' Beispiel sollte das '*' nicht enthalten sein. Sie möchten niemals einen Dateinamen für ack angeben, es sei denn, Sie haben einen Grund, einen Dateinamen für ack anzugeben. –
"Es ist kein allgemeiner Ersatz für Grep." Die erste Zeile der 'ack' man page lautet:" Ack ist als Ersatz für 99% der Verwendungen von grep gedacht. " – jwg