我曾经使用find命令为linux在PHP代码中找到十六进制代码,如下所示:
find "/www_root/myfile" -type f -name "*.php" | xargs grep -il x29
上面的命令就像一个魅力,但我可能需要一个更快的搜索器,因为我的文件不断增长。
我想使用The Silver Searcher ag
命令进行测试,我一直在搜索如何使用" ag"来查找十六进制代码。命令,但在他们的文档中找不到任何内容。所以,我在这个论坛,寻求答案,希望有人使用银色搜索器ag
搜索十六进制代码。
答案 0 :(得分: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是正确的选择。这就是全部,并有一个美好的一天。
答案 1 :(得分:0)
另请查看findrepo您可以使用的内容:
cd /www_root/myfile && findrepo -n 'x29' '*.php'
这应该比ag
快(我很惊讶你说你的初始find | xargs grep
命令慢于ag
)