查找工具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

相关文章
|
JavaScript 物联网 5G
物联网设备连接的下一个引爆点:4G Cat.1
物联网从概念兴起至今已经过了好几些年了。何为物联网,首先要定义何为“物”(Things),笔者理解所有具备连接能力的设备都可以是物,比如一个手环,一个WiFi台灯,或者NB-IoT水表等。
物联网设备连接的下一个引爆点:4G Cat.1
|
数据采集 Web App开发 JSON
Python爬虫:关于scrapy模块的请求头
Python爬虫:关于scrapy模块的请求头
755 0
Python爬虫:关于scrapy模块的请求头
|
11月前
|
Web App开发 存储 传感器
大模型编程(4)- 大白话 agent
本文介绍了大模型中的`agent`概念及其作用。通过类比日常使用的浏览器作为访问网页的代理,解释了`agent`在大模型中的角色:简化复杂操作、增强功能性。文中提到,即使是简单的功能实现(如查询天气),也可以视为`agent`的应用。进一步探讨了一个典型的智能家庭助理`agent`的工作流程,包括感知环境、思考决策和执行行动三个主要阶段。这不仅帮助理解`agent`的功能,也为开发更复杂的`agent`提供了参考。
381 3
|
缓存 JavaScript 前端开发
如何设计交互式应用程序?
【10月更文挑战第7天】如何设计交互式应用程序?交互式应用程序
412 5
|
自动驾驶 物联网 5G
5G网络的演进:从理论到实践
【10月更文挑战第3天】5G网络作为新一代移动通信技术,不仅在理论上实现了重大突破,而且在实践中也展现出了强大的生命力。本文将围绕5G网络的演进,从理论基础到实际应用,探讨5G技术的发展和实践案例,同时提供代码示例以供参考。
625 6
|
开发工具 Python
文档解析(大模型版)之初体验
该文档介绍如何使用阿里云文档智能解析服务,包括样式效果、在线文档和Python SDK调用方法。提供了处理本地及在线文件的具体示例代码,并指导如何安装依赖包、配置身份认证以及设置超时参数等关键步骤。
|
人工智能 自然语言处理 程序员
通义灵码体验分享
如果你也是一名程序员,我强烈推荐你试试通义灵码。它不仅能够帮你提高开发效率,还能够给你带来全新的编程体验。让我们一起迎接AI编程助手带来的无限可能吧!
318 0
|
存储 移动开发 JavaScript
vuex的工作流程,模块化使用案例分享,及状态持久化
vuex的工作流程,模块化使用案例分享,及状态持久化
295 0
|
机器学习/深度学习 人工智能 自然语言处理
NLP的原理是什么?
【10月更文挑战第8天】NLP的原理是什么?
532 0