0

我曾经使用linux的find命令在php代码中查找十六进制代码,如下所示:

find "/www_root/myfile" -type f -name "*.php" | xargs grep -il x29

上面的命令就像一个魅力,但随着我的文件不断增长,我可能需要一个更快的搜索器。

我想使用Silver Searcher ag命令进行测试,我一直在寻找如何使用“ag”命令查找十六进制代码,但在他们的文档中找不到任何内容。所以,我在这个论坛上寻求答案,希望有人在使用 silver searcher 搜索十六进制代码方面有经验ag

4

2 回答 2

1

不知何故,我之前没有找到这个,但现在已经找到了。我不明白的是实际上可以使用的“ag”命令和功能,但现在可以了。

我会在这里分享答案,以防有人需要它。为了替换我之前质疑的 find 命令,我们可以使用以下命令:

ag --php -l 'x29' "/www_root/myfile"

上一个命令的输出类似于:

/www_root/myfile/menus.php

如果找到更多文件,它将列出以新行“\n”分隔的文件:

/www_root/myfile/menus.php
/www_root/myfile/contents.php

如果您想知道哪些行号,则可以删除“-l”属性,然后将其替换为“--numbers”:

ag --php --numbers 'x29' "/www_root/myfile"

输出:

30:matches string found here
89:matches string found here

好的,现在我们可以将它与“cut”命令结合起来只获取行号:

ag --php --numbers 'x29' "/www_root/myfile" | cut -f1 -d:

输出:

30
89

大多数命令类似于“ack”,因此对于想要使用“ag”的您可以找到“ack”文档,因为它们已经记录了所有内容。

最后但并非最不重要的一点是,如果您想知道统计信息,可以将 --stats 添加到上述命令中,如下所示:

ag --php -l --stats 'x29' "/www_root/myfile"

这个简单的命令将输出如下所示的结果:

31 matches
1624 files searched
18686162 bytes searched
0.094022 seconds

所以,是的,选择 The Silver Searcher 是正确的选择。就是这样,祝您有美好的一天。

于 2015-03-31T01:41:17.150 回答
0

还可以查看findrepo,您​​可以使用它:

cd /www_root/myfile && findrepo -n 'x29' '*.php'

那应该比ag(我很惊讶你说你的初始find | xargs grep命令比 慢ag

于 2015-03-31T04:23:51.630 回答