Linux20180425六周第一次课(4月25日)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux20180425六周第一次课(4月25日)相关的知识,希望对你有一定的参考价值。

六周第一次课(4月25日)

9.1 正则介绍_grep上
9.2 grep中
9.3 grep下


正则表达式

技术分享图片

技术分享图片


使用grep可以查找文件中的关键字。

语法: grep  "关键字" 文件名

技术分享图片


有一些选项是可以选的。

-n 是显示行号

技术分享图片


-c显示行数,一共在这个文件中有多少行带有这个关键字

技术分享图片


-v取反,就是多少行没有这个关键字,也就是除了关键字的那两行外

技术分享图片


-A 数字,表示显示出关键字以及往下数字行的内容

技术分享图片


-B 数字,是和A想反是往上数字行

技术分享图片


-C 数字 就是既有上又有下,往上数字行 往下数字行

技术分享图片



技术分享图片


grep '[0-9]' filename 

表示0-9范围里的数字匹配 

技术分享图片

技术分享图片

也可以采用排除的选项 -v 

grep -v '[0-9]' filename

技术分享图片


关键字里的参数


grep -v '^#' filename 

grep -v '^[0-9]' filename  就是查找非开头为数字的行

-v是取反 ^是行开始的意思  ^#就是以#为开头的行 

 技术分享图片


技术分享图片

技术分享图片


grep -v ‘^#’ inittab 取出来首字母不为#的行

技术分享图片


注意:这个^是在[]里面

grep '[^0-9]' inittab 作用是非0-9,只要不是数字任何一个字符都符合要求。就是说哪怕有一个字符不为0,这一行都满足要求。

这个是以一个非数字的字符开头的行,只要不是数字开头都符号,哪怕是后面有数字都没有关系。所以下面

技术分享图片

技术分享图片

技术分享图片技术分享图片

同样的,假如前面再加上一个 ^ 就表示首位也不能是数字,所以首位有数字的也没了。

技术分享图片

技术分享图片


grep 'r.o' passwd 这里的点代表了任意一个字符,占位符。

技术分享图片


grep 'o*o' passwd *表示左边匹配0到无限次,右边必须存在

技术分享图片

如果是使用'.*'的话,表示匹配任意字符。*的左边可有可无嘛

技术分享图片

比如像找某个用户的那一行,直接用'用户名.*bash' 就可以查到

技术分享图片


正则中{}表示范围,但是需要用阻转义符 \

grep 'o\{2\}' passwd 表示有2个o的 

技术分享图片

grep 'o\{1,3\}' passwd 表示1-3个o,记得用逗号,

技术分享图片


但是转义符比较免费,看起来也比较不舒服,是否可以不用\? 

那样的话,egrep就登场了

egrep是grep的扩展

grep -E = egrep

egrep 'o{2}' passwd等同于 grep 'o\{2\}' passwd 等同于 grep -E 'o{2}' passwd

技术分享图片

技术分享图片

如果是像匹配最后一个字符是什么字母的话,需要在这个字母后面加上$ 换行符 表面后面没有了

比如查找s开头n结尾

技术分享图片


+ 在egrep 或者 grep -E下使用无需转义符 

+和*很像,区别是 + 表示+左边一次或者无数次 而*是表示左边0次或者无数次

技术分享图片


egrep 'o?t' passwd 问号表示问号前面字符出现的次数为0或者1

技术分享图片 


|表示或者,但是也需要使用egrep或者grep -E 来使用。|是选其一,可以有多个

技术分享图片

以上是关于Linux20180425六周第一次课(4月25日)的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习笔记第六周第一次课(3月12日)

六周第一次课(3月12日)

三周第一次课(12月25日)

六周第一次课(1月15日) 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

Linux20180419五周第一次课(4月18日)

Linux20180419五周第一次课(4月18日)