安装
github: https://github.com/ggreer/the_silver_searcher, brew info ag 可以查看到。
osx下安装:
brew install ag
说明
ag的版本信息:
the_silver_searcher: stable 0.31.0 (bottled)
使用
下载PHP源码进行操作
wget http://cn2.php.net/get/php-5.6.16.tar.gz/from/this/mirror -O ./php-5.6.16.tar.gz
tar zxvf php-5.6.16.tar.gz
cd php-5.6.16
-
递归查找
以前使用 grep 在 /ext/standard 这个目录递归查找c文件中包含 RETURN_STRING,使用下面命令之一: grep -n "RETURN_STRING(" /dev/null $(find ./ext/standard -name "*.c" | sort) grep -rn --include "*.c" "RETURN_STRING(" ./ext/standard 而使用ag: ag -G ".c$" "RETURN_STRING\(" ./ext/standard
-
显示前后几行
以前要显示结果的前后三行: grep -A3 -B3 -rn --include="*.c" "RETURN_STRING(" ./ext/standard 这个....我一直不知道有"-C3", 刚开始工作的时候就用-A -B, After, Before很好记。。 后来知道了可以有: grep -C3 -n "RETURN_STRING(" /dev/null $(find ./ext/standard -name "*.c" | sort) grep -C3 -rn --include "*.c" "RETURN_STRING(" ./ext/standard ag也一样,-C不加行数,默认是2 ag -C3 -G ".c$" "RETURN_STRING\(" ./ext/standard
-
排除文件
grep -rn --include="*.c" --exclude=uniqid.c "RETURN_STRING(" ./ext/standard ag --ignore "uniqid.c" -G ".c$" "RETURN_STRING\(" ./ext/standard
-
显示查找到的文件列表 ag —ignore “uniqid.c” -G “.c$” “RETURN_STRING(” ./ext/standard *.c -l
-
使用分页
ag -C5 -G ".h$" "zval;" . --pager less