通过git grep命令检索文件中的文本内容非常的便利。

此命令参数众多,这里不一一介绍,只介绍最为常用的几种。

更为详细的用法可以参阅官方文档,打开方式如下:[Shell] 纯文本查看 复制代码$ git grep --help

下面通过代码实例介绍一下此命令常用的检索功能。

当前项目下,有两文件,readme.txt和antzone.txt,内容分别是:[HTML] 纯文本查看 复制代码www.softwhy.com

以上是antzone.txt文件内容。[HTML] 纯文本查看 复制代码蚂蚁部落

softwhy.com

www.softwhy.com

以上是readme.txt文件内容。

一.检索指定关键字:

代码实例如下:[Shell] 纯文本查看 复制代码$ git grep www

上面代码可以检索"www"字符串,运行效果截图如下:

上面代码在对应文件,相应行中检索到字符串"www"。

二.检索关键字出现在哪一行:

代码实例如下:[Shell] 纯文本查看 复制代码$ git grep -n www

以上代码可以检索"www"字符串,并给出出现在文件中哪一行,运行效果截图如下:

antzone.txt文件中,检索到"www",位于第一行。

readme.txt文件中,检索到"www",位于第三行。

三.只检索指定关键字出现在哪些文件中:

代码实例如下:[Shell] 纯文本查看 复制代码$ git grep --name-only www

以上代码可以检索"www"字符串出现在哪些文件中,只列出文件名称,运行效果截图如下:

四.统计每一个文件中检索到指定关键字的行数:

代码实例如下:[Shell] 纯文本查看 复制代码$ git grep -c com

以上代码可以统计文件中有几行出现了"com"字符串,运行效果截图如下:

五.在指定commit中检索:

可以在指定的commit提交中进行检索,下面我们进行第二次提交,将readme.txt文件内容修改为:[HTML] 纯文本查看 复制代码蚂蚁部落

现在看一下提交历史记录,代码如下:[Shell] 纯文本查看 复制代码$ git log --oneline

代码运行截图如下:

下面在c2提交中检索,代码如下:[Shell] 纯文本查看 复制代码$ git grep com 5027c63

运行效果截图如下:

当然不一定非要是sha-1值,只要能标识指定commit提交即可,比如tag标签。

六.与条件检索:

当前文件antzone.txt和readme.txt文件内容如下:[HTML] 纯文本查看 复制代码www.softwhy.com

蚂蚁部落

以上是antzone.txt文件内容。[HTML] 纯文本查看 复制代码蚂蚁部落

蚂蚁部落softwhy.com

以上是readme.txt文件内容。

所谓与条件检索,就是要行同时满足多个条件,代码实例如下:[Shell] 纯文本查看 复制代码$ git grep -e 蚂蚁 --and -e com

代码运行效果截图如下:

七.或条件检索:

所谓与条件检索,就是只要行满足其中一个条件即可,代码实例如下:[Shell] 纯文本查看 复制代码$ git grep -e com --or -e 蚂蚁

代码运行效果截图如下:

特别说明:or关键字可以省略(也就是默认即为or)。

八.与或组合检索:

当前文件antzone.txt和readme.txt文件内容如下:[HTML] 纯文本查看 复制代码www.softwhy.com

antzone softwhy.com

以上是antzone.txt文件内容。[HTML] 纯文本查看 复制代码蚂蚁部落

蚂蚁部落softwhy.com

以上是readme.txt文件内容。

和其他语言的与或逻辑运算同样的,代码如下:[Shell] 纯文本查看 复制代码$ git grep -e com --and \( -e ant -e 蚂蚁 \)

代码运行效果截图如下:

九.全匹配检索:

代码实例如下:[Shell] 纯文本查看 复制代码$ git grep --all-match -e 蚂蚁 --or -e com

代码运行效果截图如下:

全匹配和普通匹配的区别在于,全匹配必须在全文满足指定的条件。

比如上面的例子中,如果是全匹配,那么必须在文件中,同时具有"蚂蚁"和"com"(没要同一行)。

而普通匹配,只要在文件中具有"蚂蚁"或者"com"中的一个即可。

看普通匹配,代码如下:[Shell] 纯文本查看 复制代码$ git grep -e 蚂蚁 --or -e com

代码运行效果截图如下:

antzone.txt文件内容如下:[HTML] 纯文本查看 复制代码www.softwhy.com

antzone

由于此文件中没有"蚂蚁",所以全匹配不成立。

git grep 全字匹配_git grep命令用法相关推荐

  1. git推送指令配置_git 常用命令

    git 简介 在实际开发中,会使用git作为版本控制工具来完成团队协作.因此,对基本的git操作指令进行总结是十分有必要的,本文对一些术语或者理论基础,不重新码字,可以参考廖雪峰老师的博文,本文只对命 ...

  2. Git复习(十一)之常见命令用法

    创建版本库 git init 进入一个文件,执行该命令此时目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了. ...

  3. git 文件全部标红_git冲突解决,代码冲突、合并冲突。【IDEA版本】

    其实所谓的冲突就是同一个文件同时被多个人修改了,导致git服务不知道要保存谁的. 一.同一个版本冲突解决 1-1.当我们正常拉取代码的时候,结果是这样的. 1-2.如果有冲突的时候,将是这样的 解决冲 ...

  4. a commit git 参数是什么意思_git commit 命令

    git commit 命令 前面章节我们使用 git add 命令将内容写入暂存区. git commit 命令将暂存区内容添加到本地仓库中. 提交暂存区到本地仓库中: git commit -m [ ...

  5. linux vi全字匹配搜索,vi编辑器中的匹配搜索操作

    玩转VIM编辑器-强力搜索 搜索导航 导航键 描述 / 向前搜索,前向 ? 向后搜索,反向 n 跳转到下一个搜索词所在位置 N 跳转到前一个搜索词所在位置 //或?? 重复前面的搜索或反向搜索 跳转到 ...

  6. SqlServer英文单词全字匹配

    环境:Vs2013+Sql Server2012 问题:现在数据库记录如下: Sentence列保存的是英文的句子,我现在想找出所有包含"I"(单词)的句子,如果我用 Senten ...

  7. Linux命令grep实现精确匹配

    Linux命令grep实现精确匹配 举例: 精确过滤含abc的行 用grep –w "abc" 或者是grep "\<abc\>"都可以实现 -w, ...

  8. grep命令用法解析

    作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  "模式"  [文 ...

  9. git add多个文件_Git之旅② - 子命令与设计哲学

    如果有人让你猜Git总共有多少子命令,你可能会在思索一番之后说:可能几十个吧(虽然常用的不超过10个).那么,当我告诉你大概有170多个时,你会是什么反应呢? 1. 所有Git子命令 Git版本号(这 ...

最新文章

  1. Java高级规范之二
  2. C#遍历指定文件夹中的所有文件和子文件夹
  3. Spring(2)bean注入--Set方法注入
  4. 有道云笔记的word文档导入功能
  5. git pull忽略指定文件_Git忽略提交规则
  6. simulink 解析udp数据_DNS 支持 TCP 和 UDP 双协议,但为何偏偏只钟情 UDP?
  7. oracle 自身连接查询,Oracle 连接查询
  8. python编程例子-Python面向对象编程 - 类和实例
  9. 微信授权获取基本信息java_Java微信网页授权授权获取用户基本信息
  10. [2018.10.10 T3] 三米诺
  11. Acer 4750 安装黑苹果_黑苹果安装 你要知道的那些坑
  12. 微信小程序报错40163-“errmsg“解决方案
  13. kirin710f是什么处理器_麒麟710F处理器怎么样
  14. grep_sed_awl_vim
  15. 厌学孩子如何进行心理疏导[为本教育]
  16. ProcessOn‘s Bug--完善个人资料无限扩容
  17. 计算机基础知识---位运算的简介
  18. 华大多功能四合一HD-100多功能智能卡读写器OCX插件配置使用教程
  19. 不用PS,一键生成熊猫头表情包(二)
  20. android 仿360浮动,Android仿360悬浮小球自定义view实现示例

热门文章

  1. 高德地图jsapi marker.markOnAMAP报错
  2. CentOS系统LAMP环境配置
  3. 如何将IDEA开发的java web项目移植到腾讯云服务器
  4. Centos 7 内核升级
  5. html背景看不见,html不显示图片-为什么在html中不显示背景图片 – 手机爱问
  6. vue v-html 富文本图片附件前图标显示问题
  7. java自动拆箱时的nullPointException问题解析
  8. Nokia E52使用技巧集锦
  9. eclipse git 主干代码合并到分支
  10. git把分支代码合并到主分支