grep命令是字符串检索命令
grep命令详解参考:shell脚本之grep的使用方法 - 碧海无波,细水长流 - 博客园
一、grep命令基础
在工程路径下,命令终端输入 source build/envsetup.sh然后可以使用以下命令:
1. jgrep
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" \
-exec grep --color -n "$@" {} +
jgrep xxx查找所有后缀带.java的文件里面xxx的字串
2.cgrep
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f \( -name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) \
-exec grep --color -n "$@" {} +
Cgrep查找.c .cc .cpp .h .hpp等C语言相关的文件
3. 其他grep
查找xml、mangrep查找AndroidManifest.xml、sepgrep查找sepolicy、mgrep查找make文件。具体用法可以参考envsetup.sh命令行格式。可以一次匹配多种文件来检索字串,比默认的grep会方便许多。
二、使用脚本编写grep命令
将jgrep、cgrep、mangrep的function内容抽出来,做成 shell脚本(.sh文件),再将脚本文件所在的路径增加到环境变量。
1. jgrep
(1)新增jgrep shell脚本内容:
jgrep脚本内容(可复制)
#!/bin/bash
find . -name .repo -prune -o -name .git -prune -o -name out -prune -o -type f -name "*\.java" -print0 | xargs -0 grep --color -n "$@"
(2)把脚本文件放在随意一个文件夹下,这里我们放在/home/zzw/grepshellzzw0903/目录下;
(3)添加环境变量:修改当前用户目录下的.bashrc文件(即 ~/.bashrc/ 或者说是 /home/.bashrc/ ),在文件的最后添加一行(记得修改成你自己的目录):
export PATH=/home/zhuziwen/zzw/grepshellzzw0903:$PATH
(4)使环境变量生效:打开命令行,输入如下命令:
source ~/.bashrc
(5)然后就可以在任何位置使用自定义的脚本啦:
2. cgrep
(1) 新增cgrep shell脚本内容:
#!/bin/bash
find . -name .repo -prune -o -name .git -prune -o -type f \( -name '*.c' -o -name '*.cc' -o -name '*.cpp' -o -name '*.h' -o -name '*.hpp' \) -print0 | xargs -0 grep --color -n "$@"
(2)其他步骤与jgrep的操作类似,若cgrep.sh脚本文件与jgrep.sh放在同一目录下,则不用再添加环境变量了;
3. mangrep
(1)新增mangrep shell脚本内容:
#!/bin/bash
find . -name .repo -prune -o -name .git -prune -o -path ./out -prune -o -type f -name 'AndroidManifest.xml' -exec grep --color -n "$@" {} +
(2)其他步骤与jgrep.sh脚本类似;