linux--正则表达式

正则表达式里需要用到的符号

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

以上这些是正则表达式的符号以及含义

正则表达式需要用到的命令:

命令1:grep
命令2:egrep
以行为单位 逐行处理
默认输出与表达式相匹配的文本行
用法: egrep [选项] ‘正则表达式’ 文件
前置命令 | egrep [选项] ‘正则表达式’
grep 命令如果要用到扩展正则的时候 需要加-E选项 或者用egrep命令

egrep的 命令选项

-i 忽略字母大小写
-v 条件取反
-c 统计行数
-q 静默,无任何输出
-n 显示结果所匹配的行号
–color 标红显示匹配字符串

1.-q选项 quiet 静默
[root@desktop0 opt]# grep '^127.0.0.1' /etc/hosts  && echo "YES" || echo "NO"
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
YES    //如果加-q选项则直接输出yes 或no 简化脚本输出

[root@desktop0 opt]# grep -q '^127.0.0.1' /etc/hosts  && echo "YES" || echo "NO" 
YES

2.基本元字符----^(开头) 和 $(结尾)

//输出以r开头的行

# grep  '^r'  /etc/passwd  
root:x:0:0:root:/root:/bin/bash
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin

//输出以bash结尾的行

[root@desktop0 opt]# grep  'bash$'  /etc/passwd  
root:x:0:0:root:/root:/bin/bash
student:x:1000:1000:Student User:/home/student:/bin/bash

3.基本元字符 . 匹配任意单个字符 *匹配任意字符
 grep '.' user      //匹配有字符的行
 grep '.*' user     //匹配任意行
grep 'a' user    //匹配带a的行
4.输出空行
 egrep -v '.' user
 egrep '^$' user
5.基本元字符-- + ? * 目标出现的次数

输出包含a的行 a最少出现一次

egrep 'a+' user

输出包含 nolog,nologin的行 in最多出现一次

 egrep 'nolog(in)?' user

输出nologin的行 末尾的n可以出现多次 末尾只有一个字符重复出现时 可以不用()

egrep 'nologin*' user

输出开头是r 结尾是nologin的行 中间可以使任意值

 egrep '^r.*nologin$' /etc/passwd
6.元字符{} 限定出现的次数范围

输出带ab ab 连续出现三次

[root@svr5 ~]# egrep '(ab){3}' brace.txt

输出包含ab 且ab连续出现2次到4次的行

 egrep '(ab){2,4}' brace.txt

输出包含ab ab最少连续出现三次的行

[root@svr5 ~]# egrep '(ab){3,}' brace.txt
7.元字符[] — 匹配范围内的单个字符

输出前面是ab 第三位是c或者是d的行

[root@svr5 ~]# egrep 'ab[cd]' brace.tx

输出包含大写字母的行

[root@svr5 ~]# egrep '[A-Z]' brace.txt
8.匹配单词边界

输出包含单词init的行 单词init 前后不能有别的字符

[root@svr5 ~]# egrep '\binit\b' /etc/rc.local
[root@svr5 ~]# egrep '\<init\>' /etc/rc.local

输出以单词ll > 匹配单词的右边界

[root@svr5 ~]# egrep 'll\>' /etc/rc.local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值