我可以使用 grep 和正确的选项组合来模拟 ack 吗?

我可以使用 grep 和正确的选项组合来模拟 ack 吗?

我在本地机器上安装了 ack-grep,发现它对于在调试时快速“确认”代码库是必不可少的。

但是,在我的廉价共享主机上,没有 ack-grep。betterthangrep.com 上的一条评价提到了

Rube Goldberg 的 find/grep/xargs 混乱

这听起来就像我需要的,但却是来自相反的方向。

有谁知道它是什么吗?

答案1

实际命令名为ack。(有些经销商可能ack-grep因为名称冲突而将其重命名为。)官方网站确实是http://betterthangrep.com,并且它有一长串的安装方法,即使你的发行版没有ack

例如,您可以下载应用程序::确认来自 Perl 的 CPAN(使用减法):

cpanm --sudo App::Ack

或者获取“独立”版本:

curl http://betterthangrep.com/ack-standalone > ~/bin/ack
chmod +x ~/bin/ack

答案2

是的,你可以手动完成,事实上你应该知道如何手动完成。例如,如果你一直在做

ack function_name --php

你可以这样做(基本上)

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

它输入起来比较长,你可以用它创建别名或 shell 脚本,但最好知道如何去做这件事,只是为了知道如何去做。

你的问题让我笑了,因为我通常听到的是老派的 Unix 专家说“你不需要ack,只要使用findxargsgrep”。很高兴看到有人从另一个方向来解决这个问题。

相关内容