开发者学堂课程【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显示行号
简单的正则表达式
◆“[]”匹配指定字符集
将匹配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