grep与正则表达式


1.通配符

字符说明
[…]匹配范围内任意一个字符 [az][a-z]
[^…]匹配范围外任意一一个字符,表示取反 [^az]
{}组合匹配{a,b,c}{1…20} 常用来建立文件夹或者文件
[][0-9]代表0-9的任意一个数字
1.1关于{}和[]的区分

{}没有特定使用场合,常用来建立序列目录和文件

[root@localhost work]# touch file{1..5}  
新建file1、file2到file5的文件
[root@localhost work]# ls
file1  file2  file3  file4  file5
[root@localhost work]# mkdir file{a,b,c} 
新建filea、fileb、filec文件
[root@localhost work]# ls
filea  fileb  filec

[]只能用来匹配文件名,若用来新建文件会出现错误

[root@localhost work]# touch file[d,e,f]
[root@localhost work]# ls
'file[d,e,f]'

匹配文件,查找文件

[root@localhost work]# ls
file1  file2  file3  file4  file5
[root@localhost work]# ls file[1-3]
file1  file2  file3

2.通配符

字符说明
表示0个或者1个
*表示0次或者多次
[]表示匹配任意一个
{n}表示n次
{n,}表示n次以及以上
{n,m}表示n次到m次

3.单词的界定

常与正则表达式一同使用
\<xxx\>
\bxxx\b
\s 表示空白
\n 表示换行

3.1实例

文本内容为

[root@localhost lianxi]# cat test.txt 
jerry	jack	mack
jerry	jack	mark
tom	anna	jack	12345	
12345
lisa	xiaoming	xiaozhang
lisi	wangwu	bob
laosi	Jerry	TOM
查找jack单词
[root@localhost lianxi]# cat test.txt | egrep "\bjack\b" 
jerry	jack	mack
jerry	jack	mark
tom	anna	jack	12345
查找以k结尾的单词
[root@localhost lianxi]# cat test.txt | egrep "k\b"
jerry	jack	mack
jerry	jack	mark
tom	anna	jack	12345	

4.正则表达式

字符说明
.代表任意单个字符
.*代表任意字符串
^以…的开头
$以…的结尾
^$空行
^#注释行
扩展grep使用需要加上-E
表示0或者1个
()表示一个字符集合
+表示一个或者多个
|表示“或意思”

若想将上述字符作为普通字符使用,需要在前面加上\字符

4.1区分取反与以…开头

以什么开头 ^[…]
在这里插入图片描述
cat /etc/passwd | grep “^[rl]”
匹配以r或者l开头的

取反 [^…]
在这里插入图片描述
[root@localhost lianxi]# cat /etc/passwd | grep “[^0-9]”
除了0到9的数字都会匹配到


5.grep

grep [选项] 搜索内容 文件名

选项说明
-a以文本文件方式搜索
-c计算找到的符合行的次数
-i忽略大小写
-n顺便输出行号
-r递归查找
-o只显示匹配的内容
-v反转查找,即找到与查找内容不符合的行 整行取反
-A显示符合条件行的下面A行 (包括查找行)
-B显示符合条件行的上面B行 (包括查找行)
-C显示符合调条件上面和下面C行 (包括查找行)
-E支持扩展正则表达式
-f根据文件内容进行匹配
5.1实例

test文本内容如下:

[root@localhost lianxi]# cat test.txt 
jerry	jack	mack
jerry	jack	mark
tom	anna	jack	12345	
12345
lisa	xiaoming	xiaozhang
lisi	wangwu	bob
laosi	Jerry	TOM	

颗粒度不同 (整行取反与括号内取反)
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值