正则表达式

正则表达式

正则表达式匹配的的是文本内容,

由一类特殊字符以及文本字符所编写的一个模式,模式又来匹配文件当中内容(字符).

检验我们输入的内容是否满足规定,格式,长度等等要求

主要用来匹配文本内容,命令的结果也可以用正则表达式

通配符:只用能用于匹配文件名和目录名,不能匹配文件的内容和命令结果

表达式

一般和grep配合使用

基本正则 元字符匹配

. 任意单个字符,也可以是一个汉字

复制代码
ls | grep '.'

\ 转义符

复制代码
ls | grep '\.'	还是所搜点号

匹配指定范围内的任意单个字符或者数字

复制代码
grep '[a-b]' xy102.txt

匹配空格

复制代码
grep '[ ]' xy102.txt

\^ 取反

复制代码
grep '^a' xy102.txt  	除了a之外都显示

^#

复制代码
grep '^#' xy102.txt		以#号开头的

^$ 空行

复制代码
grep '^$' xy102.txt		

*匹配前面的字符任意次,0次也算

贪婪模式,尽可能的匹配

但goo,最多只能再多一位

例如grep 'gooi8*'

再多一位就不能了 grep 'gooi88*'

复制代码
echo gggle | grep 'g*'
echo ggle | grep '1*gle'

.* 匹配前面的任意字符,至少要有1次,匹配所有,但至少要有一个

复制代码
echo ggle | grep '2.*gle'	以2开头的gle,至少得有1个

? 匹配前面的字符0次或者1次,可有可无

复制代码
echo gole | grep 'o\?le'

\+ 匹配的字符至少要有一次

复制代码
echo gole | grep 'o\+le'

\{n\} 匹配前面的字符=n次,或者小于n,不能大于n,而且前面的字符要连续出现

复制代码
grep 'a\{5\}' test1.txt

\{m,n\} 匹配前面的字符至少m次,至多n次,也需要是连续出现,超出的不在匹配范围

复制代码
grep 'a\{2,5\}' test1.txt

\{,n\} 匹配前面的字符最多N次

\{,n\} 匹配前面的字符最少N次

扩展正则

1、显示/etc/passwd中以sh结尾的行;

cat /etc/passwd |grep -E '(sh)$'

2、查找/etc/inittab中含有"以s开头,并以d结尾的单词"模式的行;

cat /etc/inittab | grep -E '\bsa-zA-Z*d\b'

3、查找ifconfig命令结果中的1-255之间的整数;

ifconfig|grep -E '(\b10-90-9\b)|(\b20-90-9\b)|(\b0-90-9\b)|(\b1-9\b)'

4、在/etc/passwd中取出默认shell为bash的行;

cat /etc/passwd|grep -E 'bash$'

5、高亮显示passwd文件中冒号,及其两侧的字符

cat /etc/passwd|grep -E '.?😗:.?'

片转存中...(img-n2dmPNaM-1719234125285)]

5、高亮显示passwd文件中冒号,及其两侧的字符

cat /etc/passwd|grep -E '.?😗:.?'

外链图片转存中...(img-aYlRvxQs-1719234125285)

相关推荐
九皇叔叔7 小时前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构
贝锐7 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20048 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
愤怒的苹果ext9 小时前
MySQL Shell备份恢复数据库
数据库·mysql·备份恢复·mysqlsh
小张同学a.10 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
超兔一体云12 小时前
MySQL索引优化实战——从慢查询到索引调优
后端·mysql
Best-Wishes13 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
wuminyu13 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
虎王物联13 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
2601_9620748113 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
大数据·数据库·mysql