Linux之shell脚本正则

正则表达式

用于搭配脚本或者命令使用极大的丰富了脚本的功能,所以在这里我们把它也归·为shell脚本的一部分(作者个人为了方便大家看才这么分类的)。正则表达式就是通过特殊的符号或者命令来对需要处理数据进行筛选或者加工。

类型 含义 示例 说明
^ 匹配行首 ^abc 以abc开头的行
$ 匹配行为 $abc 以abc结尾的行^$空行
. 单个字符 . 除了换行(\n)外的任意字符5
+ 最少匹配一次 a+ 一个或多个a
最多匹配一次 a? 0个或1个a
* 匹配任意次 * 任意的东西
[] 集合 grep [a] 搜索a
[^] 集合取反 grep[^a] 搜索没有a的
{} 数字查询 ro\{2,3\} 搜索以r开头o匹配2到3次
\b 单词边界 the\b the后面不许有别的东西
\w 匹配的内容+数字字母下划线 roo\w 匹配roo加字母数字下划线的组合
\s 匹配空白 \s 匹配含有空格tab的行
\d 匹配数字 \d 兼容性较差不管

通配符 ".*"匹配任意字符

R 复制代码
egrep  25[0-9]  user   #匹配user内的250-259
egrep  1?[0-9]?[0-9]   user   #匹配0-199

扩展正则

python 复制代码
grep "ro\{1,2\}t" user        #找rt,中间的o可以有1~2个
grep "ro\{2,6\}t" user        #找rt,中间的o可以有2~6个
grep "ro\{1,\}t" user            #找rt,中间的o可以有1个以及1个以上
grep "ro\{3\}t" user             #找rt,中间的o必须只有有3个
grep "\(0:\)\{2\}" user        #找连续的2个0:  小括号的作用是将字符组合为一个整体

//扩展后


扩展后要给开头加e或者给grep后面加 -E
egrep "ro{1,2}t" user        #找rt,中间的o可以有1~2个
egrep "ro{2,6}t" user        #找rt,中间的o可以有2~6个
egrep "ro{1,}t" user            #找rt,中间的o可以有1个以及1个以上
egrep "ro{3}t" user             #找rt,中间的o必须只有有3个
egrep "(0:){2}" user        #找连续的2个0:  小括号的作用是将字符组合为一个整体
R 复制代码
egrep "root|bin"  user     #查找root或bin
egrep "the\b" user         #查找the并且后面没有任何符号
egrep "\bthe\b" user       #前后都没的
egrep "\<the\>" user       #同上
相关推荐
***似水流年***6 分钟前
Linux任务管理与守护进程
linux·运维·服务器
python算法(魔法师版)19 分钟前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net
天天爱吃肉82181 小时前
车载以太网驱动智能化:域控架构设计与开发实践
java·运维·网络协议·微服务
正经教主1 小时前
【基础】Windows开发设置入门4:Windows、Python、Linux和Node.js包管理器的作用和区别(AI整理)
linux·windows·python·包管理器
Zfox_1 小时前
RPM 包制作备查 &SRPM 包编译
linux·rpm·srpm
Excuse_lighttime2 小时前
JVM 机制
java·linux·jvm
IP管家2 小时前
企业级IP代理解决方案:负载均衡与API接口集成实践
服务器·网络·数据库·网络协议·tcp/ip·容器·负载均衡
YOYO--小天2 小时前
4G和5G模块的使用
linux·嵌入式硬件·5g
愚润求学2 小时前
【Linux】进程间通信(一):认识管道
linux·运维·服务器·开发语言·c++·笔记
SHUIPING_YANG2 小时前
Nginx 返回 504 状态码表示 网关超时(Gateway Timeout)原因排查
运维·nginx·gateway