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

扩展

把一个目录下,过滤所有*.php文档中含有eval的行 :

# grep -r --include="*.php" 'eval' /data/

9.1 正则介绍_grep(上)

正则是什么?

? 正则就是一串有规律的字符串

? 掌握好正则对于编写shell脚本有很大帮助

? 各种编程语言中都有正则,原理是一样的

1.创建目录:                    mkdir grep

2.进入目录:                    cd grep

3.拷贝文件到当前目录:  cp /etc/passwd  .


grep


跟下面的参数!


-c


含有关键词 行数


-i


关键词  不区分大小写


-n


显示行号


-v


取反(非关键词行也列出来)


-r


遍历所有子目录(含有关键词行的子目录会紫色标记)


-A


-A跟数字(3)  列出关键词行和关键词下面数字行(3行)


-B


-B跟数字(3)  列出关键词行和关键词上面数字行(3行)


-C


-B跟数字(3)  列出关键词行和关键词上下各数字行(各3行)

1. grep -c 查看含有关键词行,共有行数?

grep -c '关键词'  文件名

[[email protected] grep]#  grep -c 'nologin' passwd

2. grep -n 文件内容标注行号:

grep -n '关键词'  文件名

[[email protected] grep]# grep -n 'nologin' passwd

3. grep -ni 文件内容标注行号,并搜索关键词不区分大小写:

grep -ni '关键词'  文件名

[[email protected] grep]# grep -ni 'nologin' passwd

4. grep -vni 内容标注行号,关键词不区分大小写并同时列出不含关键词的行:grep -vni '关键词'  文件名

[[email protected] grep]# grep -vni 'nologin' passwd

5. etc下:列出含有关键词行的子目录并遍历(紫色标记):

grep  -r  '关键词'  指定目录

[[email protected] grep]# grep -r 'nologin' /etc/

6. grep -nA2 列出文件中含有关键词行,并列出关键词下2行:

grep -nA2 '关键词'  文件名

[[email protected] grep]# grep -nA2 'root' passwd

7. grep -nB2 列出文件中含有关键词行,并列出关键词上2行:

grep -nB2 '关键词'  文件名

[[email protected] grep]# grep -nB2 'root' passwd

8. grep -nC2 列出文件中含有关键词行,并列出关键词上下各2行:

grep -nC2 '关键词'  文件名

[[email protected] grep]# grep -nC2 'root' passwd

9.2 grep(中)

1. 过滤出 包含0-9数字的行:grep '[数字范围]' 文件名

[[email protected] grep]# grep '[0-9]' passwd

2. 过滤出 不包含0-9数字的行:grep -v '[数字范围]' 文件名

[[email protected] grep]# grep -v '[0-9]' passwd

^放在方括号里面,是方括号里面字符的反义(非)

^放在方括号外面,以方括号里面字符开头

3. 过滤出 以#号开头的行:grep -n '^#' 文件名

[[email protected] grep]# grep -n '^#' passwd

4. 过滤出 不以#号开头的行:grep -nv '^#' 文件名

[[email protected] grep]# grep -nv '^#' passwd

5. 过滤出 含有非0-9数字行(纯数字行不会显示),非数字字符红色标记:

[[email protected] grep]#  grep -n '[^0-9]' passwd

6. 过滤出 含有非a-z字母行(纯字母行不会显示),非字母字符红色标记:

[[email protected] grep]#  grep -n '[^a-z]' passwd

7. 过滤出 不以0-9数字开头的行:

[[email protected] grep]#  grep -n '^[^0-9]' passwd

8. 过滤出 以0-9数字开头的行:

[[email protected] grep]#  grep -nv '^[^0-9]' passwd

9. 过滤出 不以a-z字母开头的行:

[[email protected] grep]#  grep -n '^[^a-z]' passwd

10. 过滤出 以a-z字母开头的行:

[[email protected] grep]#  grep -nv '^[^a-z]' passwd

9.3 grep(下)

1. 匹配出 含有关键词.关键词的行(.表示任意的一个字符):

grep '关键词.关键词' passwd

[[email protected] grep]# grep 'r.o' passwd

2. 匹配出  含有关键词的行(*左边字符可重复任意次):

[[email protected] grep]# grep 'o*o' passwd

3. 匹配出 所有字符所有行都匹配了:

[[email protected] grep]# grep '.*' passwd

4. 匹配出 包含关键词.*关键词行:grep '关键词.*关键词' 文件名

[[email protected] grep]# grep 'hao.*bash' passwd

5. {}里的数字,表示{}前面关键词的重复范围:

[[email protected] grep]# grep 'o\{2\}' passwd

或[[email protected] grep]# egrep 'o\{2\}' passwd

或[[email protected] grep]# grep -E 'o\{2\}' passwd

6. 00组合的2次重复,最少也要匹配出含有4个o的行:

[[email protected] grep]# egrep '(oo){2}' passwd

7. 匹配出 +左边字符o可

1次或多次重复,后面匹配关键词t

[[email protected] grep]# egrep 'o+t' passwd

8. ?前面字符的重复次数为0或1,

[[email protected] grep]# egrep 'o?2o' passwd

9. | 或者意思,匹配出包含关键词|(或者)匹配出关键词|(或者)匹配出关键词的行!

[[email protected] grep]# grep -E 'root|nologin|hao' passwd

总结:


.


任意一个字符


*


0个或多个*号前面的字符


.*


通配 所有的都匹配,没有字符也匹配


{}


花括号里的数字,表示{}前面的字符范围,前面字符可以用()括起来


+


一个或多个加号前面的字符



0个或1个问号前面的字符


|


或者意思

原文地址:http://blog.51cto.com/zhuneianxiang/2061197

时间: 2024-10-07 19:41:39

9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)的相关文章

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

六周第一次课(1月15日)9.1 正则介绍_grep上9.2 grep中9.3 grep下 在计算机科学中,对"正则表达式" 的定义是:它使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.在很多文本编辑器或其他工具里,正则表达式通常用来检索和替换那些符合某个模式的文本内容.许多程序设计语言也都支持利用正则表达式进行字符串操作.对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,还是查询某个日志文件并分析其容,都会用到正则表达式.其实正则表达式只是一种思

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

9.1 正则介绍_grep上  9.2 grep中 9.3 grep下 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.php" 'eval' /data/ # 9.1 正则介绍 grep 上 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170822/222929890.png?imageslim) ``` [[email protected] ~]# ls 111  1_hea

六周第一次课 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

9.1 正则介绍_grep上9.2 grep中9.3 grep下 正则介绍_grep 正则就是一串有规律的字符串 掌握好正则对于编写shell脚本有很大帮助 各种编程语言中都有正则,原理是一样的 本章将要学习grep/egrep.sed.awk grep/egrep命令 grep命令:过滤出指定关键字的行: 格式:grep [参数] '字符' filename grep -n 显示符号要求的行,并显示行号 grep -c 打印符合要求的行数 grep -v 打印不符合要求的行,取反的意思 gre

正则介绍_grep

9.1 正则介绍grep上 正则是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串. 语法: grep [-cinvABC] 'word' filename -c :打印符合要求的行数 -i :忽略大小写 -n :在输出符合要求的行的同时连同行号一起输出 -v :打印不符合要求的行 -A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行 -B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行 -C :后跟一个数字,例如 –C2 则表

Linux - 正则介绍_grep

什么是正则?正则就是一串有规律的字符串 掌握好正则对于编写shell脚本有很大帮助 各种编程语言中都有正则,原理是一样的 grep [-cinvABC] 'word' filename-c 行数-i 不区分大小写-n 显示行号-v 取反-r 遍历所有子目录-A 后面跟数字,过滤出符合要求的行以及下面n行-B 同上,过滤出符合要求的行以及上面n行-C 同上,同时过滤出符合要求的行以及上下各n行 公式:grep '过滤词' 文件名grep 'root' passwd 在passwd文件里过滤出nol

9.1-9.3 正则介绍 grep上 中 下

六周第一次课(3月12日) 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 扩展 把一个目录下,过滤所有*.php文档中含有eval的行 grep -r --include="*.php" 'eval' /data/ 9.1 正则介绍_grep(上) 介绍 本章将要学习 grep/egrep.sed.awk egrep是grep升级版 test1 [[email protected] ~]# mkdir grep [[email protected] ~]# cd

正则介绍 grep

什么是正则 1.grep 的常用选项 grep 是用来过滤指定关键词的.具体操作,见下图,grep 有个比较好的特点,自带颜色在过滤关键词上.不加颜色的话,就使用绝对路径,见下图,不加颜色的话,看起来比较费劲.接着来看一下各个选项的作用,见下图,-c 查看行数,-n 显示行号,-i 不区分大小写的话,先来编辑一下 passwd 文件,进入下图,将上图中红色框框的位置,改动三个字母为大写字母 NOL ,保存后退出.接着下图操作,让 -n 与 -ni 做对比之后,不难发现, -ni 的结果多了第2行

Linux CentOS7 VMware正则介绍、grep工具、egrep表达式

一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式的文本内容.正则表达式贯穿到整个运维日常,无论是查找某个文件,还是查询某个日志文件并分析其内容均用到. 正则表达式是一种思想,一种表示方法.常用的工具grep.sed.awk三剑客. 二.grep上 grep全称是Global Regular Expression Print,表示全局正则表达式版本

差分时钟、DQS与DQM - DDRx的关键技术介绍(上)

作者:一博科技 在上一篇的问题里面问到了DDRX相对于前一代来说的关键技术突破在哪里,虽然没有人回答得完全正确,但这个也是很正常的,因为通过几句话要想说清楚也确实是不容易的,所以还是通过文章来把这些关键技术再给大家介绍一下. 差分时钟技术 差分时钟是DDR的一个重要且必要的设计,但大家对CK#(CKN)的作用认识很少,很多人理解为第二个触发时钟,其实它的真实作用是起到触发时钟校准的作用. 由于数据是在CK的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就