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       #同上
相关推荐
爱丽_33 分钟前
MyBatis动态SQL完全指南
服务器·sql·mybatis
AI+程序员在路上44 分钟前
网桥及IP转发在嵌入式linux eth0与wlan0连接使用方法
linux·tcp/ip·php
I · T · LUCKYBOOM1 小时前
1.Apache网站优化
linux·运维·服务器·网络·apache
深耕AI1 小时前
【Docker命令】以LocalAI部署为例
运维·docker·容器
JANGHIGH1 小时前
vmware安装ubuntu虚拟机后与主机win10共享文件夹
linux·运维·ubuntu
GHL2842710901 小时前
vmware中无法看到共享文件夹
linux·运维·服务器
四谎真好看1 小时前
MySQL 学习笔记(运维篇1)
运维·数据库·笔记·学习·mysql·学习笔记
我是伪码农2 小时前
注册表单提交加验证码功能
运维·服务器
范纹杉想快点毕业2 小时前
嵌入式C语言实战开发详解
linux·运维·算法
天骄t2 小时前
数据库入门:SQLite实战指南
linux