查找工具grep|学习笔记

简介: 快速学习查找工具grep

开发者学堂课程【Linux 文本管理入门:查找工具grep】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/790


查找工具grep

内容简介:

一:工具简介

二:工具使用

三:常用场景

一:工具简介

◆工具简介

Gep全称是Global Regular Expression Print.,直译过来是全局正则表达式打印,顾名思义,此工具是通过使用正则表达式来匹配文件中的内容井将匹配到的内容打印出来,GPp工具有一系列变体,如grep ,agrep, egrep等等.区别在于是否使用了正则表达式,和使用了正则表达式集。

◆正则表达式

正则表达式实际上是一种模式,使用这种模式可以匹配对应的字符率集,正则表达式可以看做是一个有穷自动机,在Linux系统中的很多工具都使用到了正则表达式,比如之前讨论过的vm和我们之后要讨论的sed和awk。

二:工具使用

◆语法

如下图所示、grep的命令行参数非常之多,在此,我们主要介绍如下使用方式:

grep [-e expression][filename]

-e指定正则表达式

-i不区分大小写

-n显示行号

image.png

简单的正则表达式

◆“[]”匹配指定字符集

将匹配text1,text2,tex3

Is I grep -e 'text[ 123]’

◆字符串精确匹配

精确匹配"LNE”:

grep -e LINE. viminfo

◆“[^]”不匹配指定字符集

将不匹配text,text2,tex3,输出,tex4,text5

Is I grep -e ‘text’[ ^123]’

◆“*”重复匹配

将匹配t,to,too,(*表示>=30个)

Grep -e ‘to+’ text1

将匹配to,too(+表示>0个)

Grep -e ‘to+’ text1

◆".”匹配任意单个字符

将会输出文件全文:

grep-e’.’.viminfo

◆“^”头部匹記

指明正则表达式心须是头部匹配匹配所有开头的字符串

grep -e ' ^text’text1

◆“$”尾部匹配

指明正则表达式必须是尾部匹配匹配所有text结尾的字符串

grep -e 'text$’text1

◆转义字符

经过前述的讨论可知,正则表达式中,使用了很多字符,如“.””,””^””$”等等还有很多为例出来的字符。假如要匹配的字符串中有这些字符:转义字符可以解决这个问题,转义字符是一个反斜杠,下面的例子可以匹配以“¥test”结尾的字符串。

Grep -e’\$test$$’test1

三:常用场景

l C命名规范:

1)变量名的开头必须是字母或下划线,不能是数字

2)变量名中的字母是区分大小写的。比如a和A是不同的变量名,num和Num也是不同的变量名。

3)变量名绝对不可以是C语言关键字,这一点一定要记住!

4)变量名是字母、数字、下划线的组合。

c变量示例:[a-zA-Z_][a-zA-Z_0-9]*

l 在文件中查找邮箱:

假设有这样一个场景,当数据量很大时,想知道该文件中是否存在某个人的邮箱,但仅仅知道邮箱以.com结尾,并且邮箱中只含有字母和数字,要怎样才能减轻工作量:

可以先通过grep匹配出所有的以.com结尾的邮箱。

Grep’[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.com>'log.txt

相关文章
|
10月前
|
人工智能 自然语言处理 前端开发
通义灵码插件在VSCode中的运用
借助通义灵码插件在VSCode构建新闻网,实现效率与智能的融合。VSCode作为前端开发的“瑞士军刀”,提供实时预览、智能辅助和高效管理功能;通义灵码插件通过自然语言交互生成代码,简化复杂任务并优化代码质量。两者结合形成从设计到部署的高效闭环,大幅减少基础编码时间,降低开发门槛,助力开发者聚焦业务逻辑与创新。
|
存储 Prometheus 监控
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
3217 0
公司要上监控,Zabbix 和 Prometheus 怎么选?这么选准没错!
|
JSON JavaScript 前端开发
JS解决跨域问题
JS解决跨域问题
237 0
|
JSON JavaScript 前端开发
IDEA搭建vue-cli | vue-router | 排错思路、Webpack、Axios、周期、路由、异步、重定向
IDEA搭建vue-cli | vue-router | 排错思路、Webpack、Axios、周期、路由、异步、重定向
440 0
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的校园社团信息管理附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的校园社团信息管理附带文章源码部署视频讲解等
118 0
|
数据采集 JSON 搜索推荐
blog-engine-03-博客引擎 jekyll SEO
该文集对比了多个博客引擎,包括Jekyll、Hugo、Hexo、Pelican、Gatsby、VuePress、Nuxt.js和Middleman,提供了安装及SEO优化教程。SEO是Search Engine Optimization,能提升网站在搜索引擎的排名,增加曝光度和可信度。做好SEO涉及关键词研究、内容优化、速度提升、外部链接、结构清晰、移动适应和持续更新。难点在于竞争、需时间和规则变化。文章还分享了Google/Baidu收录检查方法及博客书写规范,强调标题和URL的标准格式。
|
监控 小程序 开发者
【3月开发者日回顾】“小程序加速审核能力”即将上线!
【3月开发者日回顾】“小程序加速审核能力”即将上线!
145 0
|
关系型数据库 MySQL Java
[玩转ES] ES批量/全量导入数据
[玩转ES] ES批量/全量导入数据
808 0
[玩转ES] ES批量/全量导入数据
|
Java
SpringBoot - @ConfigurationProperties 注解使用姿势,这一篇就够了(五)
SpringBoot - @ConfigurationProperties 注解使用姿势,这一篇就够了(五)
163 0
SpringBoot - @ConfigurationProperties 注解使用姿势,这一篇就够了(五)
|
应用服务中间件 nginx Docker
DockerHub 与容器网络[Docker 系列-5](下)
Hello,大家好,我是子悠,作为本周的小编昨天已经跟大家介绍过自己了,今天就让我们继续学习江南一点雨( 其实江南最近好多雨,哈哈)的 Docker 系列文章吧。下面是正文。
DockerHub 与容器网络[Docker 系列-5](下)