正则grep 使用介绍
第6周第3次课(4月25日)
课程内容:
9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
扩展
把一个目录下,过滤所有*.php文档中含有eval的行
grep -r --include="*.php" 'eval' /data/
9.1 正则介绍_grep上


-c 行数的数量,指过滤出来一共有多少行
-i 不区分大小写
-n 显示行号
-v 取反的意思
-r 把一些子目录所有遍历一遍
-A 后面跟数字,表示过滤出符合条件及数字后的行。
-B 把符合关键词条件及上面2行一起列出来
-C 把符合关键词条件的向上和向下2行一起列出来
操作实例如下:
[root@jimmylinux-002 ~]# mkdir grep
[root@jimmylinux-002 ~]# cd grep
[root@jimmylinux-002 grep]# cp /etc/passwd .
[root@jimmylinux-002 grep]# ls
passwd
[root@jimmylinux-002 grep]# pwd
/root/grep
[root@jimmylinux-002 grep]# grep 'nologin' passwd

-i 不区分大小写

保存退出后再加上-i参数查看第二行就会被过滤出来

如果不加i的参数,第二行不会被显示出来,直接从第三行开始显示。

[root@jimmylinux-002 grep]# grep -vni 'nologin' passwd 如果加上v参数会被除了nologin的显示出来

[root@jimmylinux-002 grep]# grep -r 'root' /etc/ 颜色也显示成紫色了,当然这样内容太多不方便查看。

可以重定向到grep.log里面再查看

[root@jimmylinux-002 grep]# grep -nA2 'root' passwd
把第1行带有关键词“root”的内容列出来,然后再把符合条件下面跟着的2行一起打印出来。

[root@jimmylinux-002 grep]# grep -nB2 'root' passwd
把符合关键词条件及上面2行一起列出来,因为第1行上面已经没有内容了,所以只把第1行显示出来及第10行和上面2行。

[root@jimmylinux-002 grep]# grep -nC2 'root' passwd
把符合关键词条件的向上和向下2行一起列出来

9.2 grep中

[root@jimmylinux-002 grep]# grep '[0-9]' passwd
表示方括号中任意一个字符,只要有一个数字就符合要求,会把带数字的全部过滤出来。

[root@jimmylinux-002 grep]# grep -v '[0-9]' passwd
加上-v表示把所有不包含数字的过滤掉
[root@jimmylinux-002 grep]# grep -vn '[0-9]' /etc/inittab
第9、第10行包含数字,所有没有显示。

vim /etc/inittab 查看第9、第10行带有数字
(切记不要直接修改etc下面的inittab文件,否则很有可能导致系统启动不了,如果需要修改,可以先cp一份到当前目录再修改)

[root@jimmylinux-002 grep]# grep -n '^#' /etc/inittab
'^#' 表示以#开头的行,因为都带#号,所有会全部显示出来。

[root@jimmylinux-002 grep]# grep -nv '^#' inittab
-v 把不以#开头的行打印出来
[root@jimmylinux-002 grep]# grep -v '^#' inittab
把以#开头的行去除掉

[root@jimmylinux-002 grep]# grep '[^0-9]' inittab
'[^0-9]' 表示非0-9只要不是数字,任何一个字符都符合要求

[root@jimmylinux-002 grep]# grep '^[^0-9]' inittab
把非数字的行列出来


'^#' ^在外面表示以#开头
'[^0-9]' ^在中括号里面表示取中括号内容里面的反义
9.3 grep下
[root@jimmylinux-002 grep]# grep 'r.o' passwd
'r.o' 中间的.表示任意一个字符
[root@jimmylinux-002 grep]# grep 'o*o' passwd
'o*o' *表示左边的字符重复N次,同时和后面的一起,*一定和前面的字母相关的。
[root@jimmylinux-002 grep]# grep '.*' passwd
'.*' .*表示匹配任意一个任意字符,0个也一样可以。
[root@jimmylinux-002 grep]# grep 'o\{2\}' passwd
'o\{2\}' 表示匹配花括号里面符合范围的o
[root@jimmylinux-002 grep]# egrep 'o{2}' passwd
如果感觉上面脱义方法太麻烦,当然也可以使用egrep的方式。
[root@jimmylinux-002 grep]# grep -E 'o{2}' passwd 这个命令和egrep方式一样
[root@jimmylinux-002 grep]# grep -E '(oo){2}' passwd 列出重复出现2次o的内容
[root@jimmylinux-002 grep]# egrep 'o+o' passwd "+"表示+号前面的一次或多次
[root@jimmylinux-002 ~]# egrep 'o?t' passwd "?"表示?前面字符重复次数0或1,如果没有就显示?后面的内容。
[root@jimmylinux-002 grep]# grep -E 'root|nologin' passwd |竖线表示或者,例如列出root或者nologin的内容。

正则grep 使用介绍的更多相关文章
- awk 正则表达式、正则运算符详细介绍
前言:使用awk作为文本处理工具,正则表达式是少不了的. 要掌握这个工具的正则表达式使用.其实,我们不必单独去学习它的正则表达式.正则表达式就像一门程序语言,有自己语法规则已经表示意思. 对于不同工具 ...
- Jquery 遍历数组之grep()方法介绍
grep()方法用于数组元素过滤筛选. grep(array,callback,boolean);方法参数介绍. array ---待处理数组 callback ---这个回调函数用来处理数组中 ...
- 正则grep
什么是正则: 正则就是一串有规律的字符串. 正则三剑客: grep/egrep (egrep是grep的扩展),sed, awk grep grep过滤指定关键词 [root@localhost gr ...
- perl中的grep函数介绍
grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...
- linux命令之grep用法介绍
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- 正则和grep——再做正则就去死
grep 文本过滤工具 基本正则表达式 grep 语法 基本正则表达式的元字符 次数匹配 位置锚定 分组 扩展正则表达式 基本正则表达式的元字符 次数匹配 位置锚定 分组 或者 grep的介绍 lin ...
- shell脚本-正则、grep、sed、awk
----------------------------------------正则---------------------------------------- 基础正则 ^word ##搜索以w ...
- 通过grep来进行日志分析,grep -C和配合awk实际对catalina.out使用案例
本文介绍通过grep来进行日志分析,主要介绍grep -C和配合awk实际对catalina.out使用案例 grep可以对日志文件进行筛选,统计,查询,快速定位bug. 首先,你的日志需要比较规范, ...
- linux三剑客之一grep
正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源 正则表达式这个名词,相信 ...
随机推荐
- opacity层叠问题
使用了position属性值为 absolute.relative 的层,将会比普通层更高层次.使用了小于1的opacity属性的层,也比普通层更高层次并且和指定 position 的层同层,但是不支 ...
- maven项目部署到tomcat方法
今天记录下,maven项目部署到服务器的过程 1.首先在ide中里将自己的maven项目打包 mvn clean install 2. 看是否需要修改war包的名字,如果要修改,就用命令 mv xxx ...
- 长寿花:dp
当然可以打组合数+CRT什么的,但是其实不必那么麻烦. 先讲那个思路,再转化过来吧. 首先可以发现的一个问题:所有颜色之间是没有区别的,所以我们其实并不在意到底是哪几种,我们只需要知道有几种就可以了. ...
- 通过cmd命令查看Python库、函数和模块的帮助文档与介绍
dir函数式可以查看对象的属性 使用方法很简单,举os类型为例,在Python命令窗口输入 dir(‘os’) 即可查看os模块的属性 打开cmd命令窗口 输入python(注意:计算机需要有Pyth ...
- [转载]1.4 UiPath参数的介绍和使用
一.参数介绍 用于将数据从一个项目传递到另一个项目.在全局意义上,它们类似于变量,因为它们动态地存储数据并传递给它.变量在活动之间传递数据,而参数在自动化之间传递数据.因此,它们使你能够一次又一次地重 ...
- Centos 7.X 安装及常规设置
一.制作USBHDD+启动 需要工具: UltraISO(软碟通) U盘 centos7镜像: http://www.centos.org 二.安装(有坑) U盘启动电脑,进入安装界面: 选中第一项, ...
- Havok Physics 2012(2)
目录 Havok Physics 2012 Chapter 2. Creating a Simulation 创建一个模拟世界 1. Creating Physics 2012 Objects Hav ...
- SqlServer2005 查询 第三讲 between
在数据库的查询中最重要的是要知道命令的顺序,因为在sql命令中有许多的参数,例如distinct,top,in,order by,group by.......如果你不能理解什么时候该执行什么的话,很 ...
- Jumpserver v2.0.0 使用说明
官方文档:http://www.jumpserver.org/ — 登录脚本 — 1.1 使用paramiko原生ssh协议登录后端主机(原来版本使用pexpect模拟登录) 1.2 新增使用别名或备 ...
- linux下制作linux系统盘(光盘、U盘)
cdrecord制作启动光盘 首先cdrecord -scanbus输出设备列表和标识,(我的此次为5,0,0) [ˈrekərd] 然后用cdrecord -v dev=5,0,0 -eject ...