Shell系列(19)- 正则表达式
正则表达式与通配符
- 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep,awk,sed等命令可以支持正则表达式。
 - 通配符用来匹配符号条件的文件名,通配符是完全匹配。ls,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。
 
通配符
| 符号 | 作用 | 
| * | 匹配任意内容 | 
| ? | 匹配任意一个内容 | 
| [] | 匹配括号中的一个字符 | 
基础正则表达式
| 元字符 | 作用 | 
| * | 前一个字符匹配0次或多次 | 
| . | 匹配除了换行符外任意一个字符 | 
| ^ | 匹配行首。例如:^hello会匹配以hello开头的行 | 
| $ | 匹配行尾。例如:hello$会匹配以hello结尾的行 | 
| [] | 
 匹配中括号中指定的任意一个字符,只匹配一个字符。 例如:[0-9]匹配任意一位数字,[a-z][0-9]匹配小写字和一位数字构成的两位字符  | 
| [^] | 匹配除中括号的字符以外的任意一个字符。例如:[^0-9]匹配任意一位非数字字符,[^a-z]表示任意一位非小写字母 | 
| \ | 转义符。用于取消特殊符号的含义取消 | 
| \{n\} | 表示前面的字符恰好出现n次。例如:[0-9]\{4\}匹配四位数字,[1][3-8][0-9]\{9\}匹配手机号码 | 
| \{n,\} | 表示其前面的字符出现不小于n次。例如:[0-9]\{2,\}表示两位及以上的数字;左右两边边界不限定死,该正则无太大意义,类似于包含 | 
| \{n,m\} | 表示其前面的字符至少出现n次,最少出现m次。例如:[a-z]\{6,8\}匹配6到8位的小写字母 | 
“*” 前一个字符出现0次或多次
- “a*”:匹配所有的内容,包括空白行
 - “aa*”:匹配至少包含一个a的行
 - “aaa*”:匹配至少包含二个a的行
 - “aaaa*”:匹配至少包含三个a的行
 
“.” 匹配除了换行符外任意一个字符
- “s..d”:匹配在s和d这两个字母中间一定有两个字符的单词
 - ”s.*d“:匹配在s和d这两个字母中间有任意字符个数的单词
 - ”.*“:匹配所有内容
 
“^” 匹配行首 “$” 匹配行尾
- “^M”:匹配以M开头的行
 - “n$”:匹配以小写n结尾的行
 - “^$”:匹配空白行
 
“[]” 匹配中括号中指定的任意一个字符,只匹配一个字符
- “s[ao]id”:匹配在s和i子母中,要么是a,要么是o
 - “[0-9]”:匹配任意一个数字
 - “^[a-z]”:匹配用小写字母开头的行
 
“[^]” 匹配除中括号的字符以外的任意一个字符
- “^[^a-z]”:匹配不用小写字母开头的行
 - “^[^a-zA-Z”:匹配不用字母开头的行
 
“\” 转义符
- “\.$”:匹配使用“.”结尾的行
 
“\{n\}” 表示前面的字符恰好出现n次
- “a\{3\}”:匹配a字母连续出现三次的字符串
 - “[0-9]\{3\}”:匹配包含连续的三个数字的字符串
 
“\{n,\}” 表示其前面的字符出现不少于n次
- “^[0-9]\{3,\}”:匹配最少用3个数字开头的行
 
“\{n,m\}” 匹配其前面的字符至少出现n次,最多出现m次
- “sa\{1,3\}i”:匹配在字母a和字母i之间有至少一个a,最多出现三个a
 
Shell系列(19)- 正则表达式的更多相关文章
- Linux Shell系列教程之(十三)Shell分支语句case … esac教程
		
本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...
 - Linux Shell系列教程之(五)Shell字符串
		
本文是Linux Shell系列教程的第(五)篇,更多shell教程请看:Linux Shell系列教程 字符串是Shell编程中最常用最有用的数据类型,今天,Linux大学网就为大家介绍一下在She ...
 - 任督二脉之Shell中的正则表达式
		
VBird说学习Linux,掌握了Shell和正则就相当于打通了任督二脉,此后能力的成长才会突飞猛进. Shell的基础学习之前已经总结了一篇博客:http://www.cnblogs.com/jyz ...
 - Linux Shell系列教程之(十七) Shell文件包含
		
本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...
 - Linux Shell系列教程之(十六) Shell输入输出重定向
		
本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...
 - Linux Shell系列教程之(十五) Shell函数简介
		
本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...
 - Linux Shell系列教程之(十四) Shell Select教程
		
本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...
 - Linux Shell系列教程之(十二)Shell until循环
		
本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...
 - Shell中的正则表达式及字符串处理
		
shell里一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所 ...
 - ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览
		
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
 
随机推荐
- vivo商城计价中心 - 从容应对复杂场景价格计算
			
一.背景 随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中. 拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务 ...
 - Pytest+Allure 示例
			
0. 前言 简介 Allure 框架是一个灵活的.轻量级的.支持多语言的测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人可以从日常执行的测试中,最大限度地提取有 ...
 - MySQL05
			
SQL字段相关语句 添加字段 alter table 表名 add 字段名 数据类型 约束条件; 修改字段 alter table 表名 modify 字段 数据类型 约束条件; # modify只能 ...
 - 题解 y
			
传送门 考场上写的记忆化不够快--和暴力一个分 如果题面里有提到类似「从点1出发」的字样,特别注意点1根本就没有连边的情况 这题写记忆化的时候是想搜出所有可能的组合, 那么对于一个点u,剩余深度为d时 ...
 - JavaWeb学习笔记(五)
			
本文内容 1. JSP: 1. 指令 2. 注释 3. 内置对象 2. MVC开发模式 3. EL表达式 4. JSTL标签 5. 三层架构 JSP: 1. 指令 * 作用:用于配置JSP页面,导入资 ...
 - SpringBoot集成Druid
			
maven <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-b ...
 - Kafka 与 RabbitMQ 如何选择使用哪个?
			
目录 前言 如何选择? 开发语言 延迟队列 消息顺序性 优先级队列 消息留存 消息过滤 可伸缩行 小结 推荐阅读 前言 我们在工作中经常会用到异步消息,主要使用两种消息模式: 消息队列 发布/订阅 消 ...
 - windows上解决git每次重复输入账号密码
			
win7电脑: 1.在 C:\Users\Administrator 下 编辑 .gitconfig文件 2.在原有内容下添加一行(此行作用为自动保存,保存修改后再使用一次GIT,输入账号密码后下次即 ...
 - asp.net MVC 的路由匹配
 - 【转】TCP和UDP的区别
			
转自:https://www.cnblogs.com/steven520213/p/8005258.html TCP和UDP是OSI模型中的运输层中的协议.TCP提供可靠的通信传输,而UDP则常被用于 ...