JavaShuo
栏目
标签
正则介绍 grep 上中下
时间 2019-12-17
标签
正则
介绍
grep
中下
栏目
正则表达式
繁體版
原文
原文链接
正则介绍 grep
egrep 是 grep 的扩展
如图, grep 'nologin' passwd 能够搜索passwd中含有nologin的数据行
而后用颜色显示 nologin
which grep 能够看到 grep 是一个 alias
之因此可以用颜色显示nologin 是由于
这个 alias 包含了 --color=auto 自动显示颜色的设置
参数 -c 能够统计包含nologin的数据行的数量
这里是18,表示有18行
参数 -n 能够显示行号
如图最左边,暗绿色显示的数字就是每一行的行号
如图,参数 i 能够不区分大小写
下面的搜索结果,NOLogin 和 nologin 都搜索出来了
若是不加 i 参数,会严格按照大小写来搜索
参数 v 是取反的意思
通常来讲,grep 'nologin' passwd 是把包含nologin的数据行筛选出来
如图,使用 v 参数,那么效果就是把不包含nologin的数据行筛选出来
就是把与筛选条件相反的结果筛选出来的意思
参数 -r 能够遍历目录里面全部的子文件和子目录里面的文件
grep 通常是对文件内容进行筛选,使用对象是文件不能是目录
可是 r 参数的意思是,能够遍历目录里面的全部文件和子目录里面的文件内容
而后筛选出全部包含关键词的数据行
因此使用 r 参数就能够对目录进行 grep 操做
如图,grep -r 'root' /etc/ > /tmp/grep.log
意思是,遍历/etc/目录里面全部文件,包括子目录里面的文件
筛选出全部的包含关键字 'root' 的数据行
而后重定向,也就是说写入 grep.log 文件里面
而后 grep passwd /tmp/grep.log
意思是从 grep.log 文件里面筛选出全部包含 passwd 关键字的数据行
关于grep后面的关键字加不加引号
还有一个参数 A+数字n,能够显示关键字数据行和下面的n行
例子,如图, grep -nA2 'root' passwd
这条命令会把包含关键字 root 的数据行都筛选出来
由于A后面的数字是2,因此还会显示root数据行下面的两行
如图,第一行数据行包含root,这一行下面的两行也会筛选出来
而后找到第二行包含root关键字的数据行
而后把第二行root数据行下面的两行也筛选出来,以此类推
除了参数 A,还有参数 B
区别是,A+数字n 能够筛选出关键字行和该行的下面 n 行
而 B+数字n 就能够筛选出关键字行和该行的上面 n 行
如图,第一行root数据行上面没有数据,由于这一行上面原本就没有数据行了
第二行root数据行和该行的上面两行数据都被筛选出来了
还有参数 C+数字n
A是筛选下面n行,B是筛选上面n行,C能够上下各n行
如图,grep -nC2 'root' passwd
首先,能够把 root 关键字的行筛选出来
而后还能够把每一行 root数据行 的上面2行和下面2行也筛选出来
第一个root数据行由于上面没有数据因此没有显示
第二个root数据行的上下2行都被筛选出来了
grep '[0-9]' passwd
其中 [0-9] 表示0到9里面任意一个数字
这个筛选条件表示全部数据行里面,任何一行存在0-9任意一个数字的数据行都会被筛选
也就是说,任何存在数字的数据行都会被筛选
若是想筛选出不存在数字的行
可使用 grep -v '[0-9]' passwd
参数 v 是取反,这样就会把没有数字的行筛选出来
上图的筛选条件是 '^#'
符号 ^ 表示 以...开头,因此 ^# 就表示以 # 开头
这条命令的意思就是 筛选出以 # 开头的数据行
能够看到,下面的数据行全都是以#开头的
若是使用 -v 参数就能够把 不以#开头的行筛选出来
符号 ^ 有两种含义,在方括号[]外面的含义是 以...开头
在方括号[]里面的含义是 非 的意思
如图,grep '[^0-9]' inittab
这里 ^ 的位置是在方括号[]里面,因此意思是 非
那么 [^0-9] 就表示 非 0-9 任意一个数字
也就是非数字的意思
看下面的筛选内容,能够看到,非数字全都红色高亮显示
而数字则是白色,说明全部数字都不是关键字
如图,grep '^[^0-9]' inittab
这里筛选条件是 '^[^0-9]'
由于 ^ 在方括号[]外面时候的含义是 以...开头 的意思
[^0-9] 是非数字的意思
因此 '^[^0-9]' 就表示 以非数字开头的数据行
看下面筛选出来的数据行,全都是非数字开头的
如图,使用 v 参数取反结果
能够筛选出 以数字开头的数据行
还有一点,使用取反操做的时候,筛选关键字是不会高亮显示的
非取反操做的时候才会高亮显示关键字
如图,筛选条件是 'r.o' ,符号 . 表明一位字符
一位字符能够是任意字符
r.o 意思就是 r 开头,o 结尾,中间能够是任意一位字符
看下面的筛选结果
高亮显示的关键字,有 roo,rao,r.o
全部关键字都是r开头o结尾,中间任意一位字符
这里的筛选条件是 'o*o'
右边的 o 表示关键字是以 o 结尾的
左边的 o* 表示任意个 o
o* 表示 0-n 个 o ,若是为0,就是没有 o
结合起来,筛选条件意思是,关键字就是 任意个o + o
看下面筛选结果,有一个o的,这就是左边o*为0个o的结果
有两个o的,这就是左边 o* 为 1 的结果
左边也能够有更多个o,若是有这样的数据行的话
还能够把 * 和 . 结合起来使用
符号 . 表明一位字符
符号 x* 表明 0-n 个 x
那么 .* 就表明 0-n 个一位字符,也就是任意长度的字符
如图,筛选条件是 'aming.*bash'
这表示,以 aming 开始
以 bash 结束
中间是 .* 表明任意长度的字符
符合这个格式的关键词数据行会被筛选出来
结果就是 aming开始,而后任意字符串,而后bash结尾的关键字
还可使用花括号{}指定范围
如图 'o{2}' 表示筛选出o连续出现两次的关键字的数据行
之因此加转义字符 \ 是由于在grep里面,花括号{}是不识别的
想令花括号{}被识别产生做用就须要转义一下
使用 egrep 就能够不用转义,由于 egrep 是支持花括号的
如图,使用 egrep 的时候,就不须要写转义符
如图 grep -E 就至关于在使用 egrep
参数 -E 就表示使用的是 egrep
因此也能够不须要转义字符
如图,能够把 oo 用小括号括起来,表示这是一个总体
后面使用{2}表示连续出现两次
那么 oo 连续出现两次就是 oooo
看筛选结果,关键字就是 oooo
使用小括号的时候,也须要用 -E 或者 egrep,由于grep不识别小括号
否则就须要用转义字符转义小括号
特殊符号 + 做用跟 * 差很少
它们的区别是 *表示0-n ,+ 表示 1-n
星号最小个数是0,也就是没有,+的最小个数是1,也就是最少要有一个相关字符
如图,关键字条件是 'o+t'
o+ 表示关键字左边最少有 1个 o 或者 n个 o
右边以 t 结尾
看筛选结果,oot, 左边是2个o,右边以 t 结尾
还有一个问题,egrep也是不识别 + 号的,使用须要用转义字符
或者使用 egrep 或 -E 就能够直接识别,不用转义
如图,特殊符号 ? 号, 表示 0 或 1
上图,o? 表示 0个o 或者 1个o
意思就是右边以 1o 结尾,左边能够有0个或者1个o
看下面筛选结果有 1o,o1o
1o 就是左边有0个o,o1o就是左边有1个o
要使用?号,也是须要用 egrep 或者 -E
符号 | 是 或 的意思,使用这个功能也须要使用 egrep 或者 -E 参数
如图,第一行命令,筛选 root或者Bus或者997的关键字出来
下面能够看到,root,Bus,997关键字都高亮显示了
第二条命令,-E后面添加了一个 i 参数
意思是忽略大小写
筛选条件里面的 bus或者root,能够筛选出任意字母是大写或者小写的
好比这里,筛选条件写了 bus
可是筛选结果出现了 Bus ,若是不用 i 参数
bus里面任意一个或者几个字母若是跟条件处的大小写不一致
就不会被筛选出来,如今能够筛选任意字母大小写的 bus 出来
相关文章
1.
正则介绍_grep上& grep中 & grep下
2.
26.正则介绍 grep上 中 下
3.
正则介绍、grep介绍
4.
正则介绍 grep
5.
9.1 正则介绍_grep上 9.2 grep中 9.3 grep下
6.
9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
7.
正则介绍:grep和egrep
8.
正则介绍以及grep
9.
9.1 正则介绍_grep(上)
10.
正则介绍 、grep、egrep工具
更多相关文章...
•
C# 正则表达式
-
C#教程
•
Scala 正则表达式
-
Scala教程
•
Java Agent入门实战(一)-Instrumentation介绍与使用
•
Tomcat学习笔记(史上最全tomcat学习笔记)
相关标签/搜索
介绍
正则
grep
上上下下
中介
简要介绍
据介绍
01-介绍
介绍性
我的介绍
正则表达式
Redis教程
SQLite教程
PHP 7 新特性
注册中心
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
在windows下的虚拟机中,安装华为电脑的deepin操作系统
2.
强烈推荐款下载不限速解析神器
3.
【区块链技术】孙宇晨:区块链技术带来金融服务的信任变革
4.
搜索引起的链接分析-计算网页的重要性
5.
TiDB x 微众银行 | 耗时降低 58%,分布式架构助力实现普惠金融
6.
《数字孪生体技术白皮书》重磅发布(附完整版下载)
7.
双十一“避坑”指南:区块链电子合同为电商交易保驾护航!
8.
区块链产业,怎样“链”住未来?
9.
OpenglRipper使用教程
10.
springcloud请求一次好用一次不好用zuul Name or service not known
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
正则介绍_grep上& grep中 & grep下
2.
26.正则介绍 grep上 中 下
3.
正则介绍、grep介绍
4.
正则介绍 grep
5.
9.1 正则介绍_grep上 9.2 grep中 9.3 grep下
6.
9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
7.
正则介绍:grep和egrep
8.
正则介绍以及grep
9.
9.1 正则介绍_grep(上)
10.
正则介绍 、grep、egrep工具
>>更多相关文章<<