使用脚本编写grep命令

本文介绍了如何在工程环境下利用自定义的jgrep, cgrep, mangrep脚本快速检索.java, C源码及AndroidManifest.xml等文件中的特定字符串,通过shell脚本简化grep命令,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        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脚本类似;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值