Shell三剑客:正则表达式(元字符)

一、定义:元字符字符是这样一类字符,它们表达的是不同字面本身的含义

二、分类:

1、基本正则表达式元字符

cs 复制代码
#    ^ 行首定位
[root@localhost ~]# grep root  /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

#    $ 行尾定位
[root@localhost ~]# grep love$ 1.txt 
love

#    . 匹配任意单个字符
[root@localhost ~]# grep a.c 1.txt 
abc
adc

#    * 匹配前导符0次到多次
[root@localhost ~]# grep "abcde*" 1.txt 
abcd
abcde
abcdef
abcdefj

#    .* 任意多个字符
[root@localhost ~]# grep ".*" 1.txt 
qian
yoa
huang
kai
kong

#    [] 匹配指定范围内的一个字符
[root@localhost ~]# grep "[lL]ove" 1.txt 
love
love
Love

#    [-] 匹配指定范围内的一个字符,连续的范围
		[root@localhost ~]# grep "[a-z]ove" 1.txt 
love
love

#    [^] 匹配不在指定组内的字符
[root@localhost ~]# grep "[^lL]ove" 1.txt 
1ove
|ove

#    \ 用来转义元字符('' "" \),脱意符
[root@localhost ~]# grep "l\.ve" 1.txt 
l.ve

#    \< 词首定位符
[root@localhost ~]# grep "\<love" 1.txt 
love
love

#    \> 词尾定位符
		[root@localhost ~]# grep "love\>" 1.txt 
love
love

#    () 匹配稍后使用的字符的标签
:1,2 s/(.*\)/#\1/      #加注释

#    x\{m\} 字符x重复出现m次
[root@localhost ~]# grep "o\{3\}" 1.txt 
|oooove

#    x\{m,\} 字符x重复出现m次以上
[root@localhost ~]# grep "o\{3,\}" 1.txt 
|oooove
looove
loooooooove

#    x\{m,n\} 字符x重复出现m到n次
[root@localhost ~]# grep "o\{3,4\}" 1.txt 
|oooove
looove
loooooooove

2、扩展正则表达式元字符

cs 复制代码
#    + 匹配1-n个前导字符
[root@localhost ~]# egrep lo+ve 1.txt 
love
love
looove
loooooooove

#    ? 匹配0-1个前导字符
[root@localhost ~]# egrep lo?ve 1.txt 
love
love

#    a | b 匹配a或b
[root@localhost ~]# egrep "o|v" 1.txt 
yoa
kong
duo
gou
love
love

#    () 组字符
[root@localhost ~]# egrep "love(able|rs)" 1.txt 
loveable
lovers

[root@localhost ~]# egrep "loveable|rs" 1.txt 
loveable
lovers
相关推荐
无敌小茶10 分钟前
Linux学习笔记之环境变量
linux·笔记
Harbor Lau23 分钟前
Linux常用中间件命令大全
linux·运维·中间件
꧁坚持很酷꧂1 小时前
Linux Ubuntu18.04下安装Qt Craeator 5.12.9(图文详解)
linux·运维·qt
凉、介1 小时前
PCI 总线学习笔记(五)
android·linux·笔记·学习·pcie·pci
电鱼智能的电小鱼2 小时前
EFISH-SBC-RK3588无人机地面基准站项目
linux·网络·嵌入式硬件·机器人·无人机·边缘计算
电鱼智能的电小鱼2 小时前
基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案
linux·网络·嵌入式硬件·数码相机·无人机·边缘计算
小诸葛的博客3 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19913 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify3 小时前
Linux常用指令
linux·服务器·php
带电的小王3 小时前
sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
linux·语音识别·实时音视频·sherpa-ncnn