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       #同上
相关推荐
ltl7 小时前
Linux 异步 I/O:epoll 与 io_uring 对比
linux
ltl7 小时前
压缩算法工程实践:吞吐、比率与 CPU 权衡
linux
fiveym8 小时前
01 - iPXE + Clonezilla 网络装机原理解析
linux·运维·服务器·网络
虎头金猫8 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
dog2508 小时前
网络优化,还是降低各阶矩
服务器·网络·php
反转180度9 小时前
Qt 6 + C++17 实现 SFTP 批量部署:工业设备运维工具实战解析
运维·c++·qt
雨辰AI10 小时前
RAG 知识库搭建:基于人大金仓构建信创运维问答机器人|全栈国产化落地完整版
运维·ai·机器人·ai编程
-今昭-10 小时前
Ansible
linux·运维·ansible
星野川崎20610 小时前
电商多店运维:云机长期挂机频繁掉线、账号无故风控原因剖析与解决方案
大数据·运维·云计算·电商
mounter62511 小时前
MACsec 全景解析:从技术演进、核心架构到 DPU 硬件卸载与 K8s 大规模调度实战
linux·kubernetes·linux kernel·kernel·macsec