Kann ich mit der richtigen Kombination von Optionen ack simulieren?

469
user908393

Ich habe ack-grep auf meinem lokalen Rechner installiert und finde es unerlässlich, um beim Debuggen schnell eine Codebase durchzusehen.

Bei meinem günstigen Shared Hosting gibt es jedoch kein ack-grep. Eines der Erfahrungsberichte auf betterthangrep.com erwähnt a

Rube Goldberg Chaos von find / grep / xargs

das klingt nach dem was ich brauche, komme aber aus der entgegengesetzten Richtung.

Weiß jemand was es sein könnte?

2

2 Antworten auf die Frage

4
grawity

Der eigentliche Befehl wird benannt ack. (Einige Distributoren haben sie möglicherweise ack-grepaufgrund von Namenskollisionen umbenannt.) Die offizielle Website ist http://betterthangrep.com . Sie enthält eine lange Liste von Installationsmethoden, auch wenn Ihre Distribution dies nicht tut ack.

Sie können App :: Ack beispielsweise über CPAN von Perl (mit cpanminus ) herunterladen :

cpanm --sudo App::Ack 

Oder holen Sie sich die "Standalone" -Version:

curl http://betterthangrep.com/ack-standalone > ~/bin/ack chmod +x ~/bin/ack 
Atemberaubend, danke. Linux FTW user908393 vor 12 Jahren 0
4
Andy Lester

Ja, Sie können es manuell tun, und Sie sollten wissen, wie es manuell gemacht wird. Zum Beispiel, wenn Sie es getan haben

ack function_name --php 

das kannst du (so ziemlich) als machen

find . -name '*.php' | xargs grep function_name 

Es ist länger zu tippen, und Sie können daraus ein Alias ​​oder ein Shell-Skript erstellen, aber es ist gut zu wissen, wie es gemacht wird, nur um zu wissen, wie es geht.

Ihre Frage bringt mich zum Lächeln, weil in der Regel, was ich höre alte Garde Unix Greise ist sagen : „Sie brauchen nicht acknur verwenden find, xargsund grep.“ Es ist cool zu sehen, wie jemand aus der anderen Richtung auf ihn zukommt.

Wahnsinnig nah an "Du brauchst das neue Rad nicht, erfindest einfach nur dein eigenes neu." grawity vor 12 Jahren 1
Das ist es sicherlich, aber es ist ein Kampf, in den ich aufgehört habe. Wenn die Leute es auf die alte Art und Weise tun wollen, weil Ken und Dennis es so sagen sollen, dann liegt es an ihnen. Andy Lester vor 12 Jahren 1