Linux 命令集合

linux下使用ack进行代码搜索

2019-04-04  本文已影响0人  祐吢房_2c9a

1、安装

2、ack的使用案例

1.在当前目录递归搜索单词”eat”,不匹配类似于”feature”或”eating”的字符串:

$ ack -w eat

2.搜索有特殊字符的字符串’path=.’,所有的元字符(比如’',’.')需要在字面上被匹配:

$ ack -Q '$path=.' /etc

3.除了dowloads目录,在所有目录搜索”about”单词:

$ ack about --ignore-dir=downloads

4.只搜索包含’protected’单词的PHP文件,然后通过文件名把搜索结果整合在一起,打印每个文件对应的搜索结果:

$ ack --php --group protected

5.获取包含’CFLAG’关键字的Makefile的文件名。文件名为*.mk,makefile,Makefile,GNUmakefile的都在考虑范围内:

$ ack --make -l CFLAG

6.显示整个日志文件时高亮匹配到的字符串:

$ tail -f /var/log/syslog | ack --passthru 192.168.1.10

7.要换取ack支持的文件过滤类型,运行:

$ ack --help-type

3. ack 其他参数详解

ack可以用来替代grep 99%的的使用场景
它很智能,只搜索它“认识”的文件
比如:ab.c这中文件,ack是不会去搜索的

使用-a选项可以搜索所有的文件,但
某些文件是永远都不会搜索的(除非在命令行中指定),比如备份文件。

[no]ignore-dir: ack会在制定目录下递归搜索文件夹,如果要忽略搜索某个文件件,使用--ignore-dir. 如果不忽略,使用--noignore-dir.

可以使用.ackrc作为ack的配置文件,定义匹配文字的颜色,新定义文件类型和匹配的扩展名等,这样就不用每次都在命令行中指定了。

上一篇 下一篇

猜你喜欢

热点阅读