【Shell编程】Shell中的正则表达式

简介: 【Shell编程】Shell中的正则表达式

Shell中的正则表达式

1、正则表达式与通配符

正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。


通配符用来匹配符合条件的文件名,通配符是完全匹配的。ls、find、cp这些命令不支持正则表达式,所以只能使用Shell自己的通配符来进行匹配了。


2、正则表达式规则

元字节 作用
* 前一个字符匹配0次或者n次
. 匹配除了换行符外任意一个字符
^ 匹配行首,例如:^hello会匹配以hello开头的行
$ 匹配行尾,例如:hello$会匹配以hello结尾的行
[] 匹配中括号中指定的任意一个字符,只匹配一个字符。
例如:{aoeiu}匹配任意一个元音字符,
[0-9]匹配任意一位数字
[a-z][0-9]匹配小写字和一位数构成的俩位字符
[^] 匹配除了中括号的字符以外的任意一个字符,例如:[^0-9]匹配
任意一个为数字字符
\ 转义符,用于取消将特殊符号含义取消
\{n\} 表示其前面的字符出现不小于n次,
例如:[0-9]{2,} 表示匹配俩位数及其以上的数字
\{n,m\} 表示其前面的字符至少出现n次,最多m次,
例如:[a-z]{6,8}匹配6到8为的小写字母


3、练习

测试的文本

3.1 匹配所有内容,包括空白行

命令:grep "a*" 文件名

效果图:



3.2 匹配行至少包含有一个a的行

命令:grep "aa*" 文件名

效果图:


3.3 匹配行至少有俩个连续的a

命令:grep "aaa*" 文件名

效果图:

3.4 匹配在s与d字符中间有俩个字符的单词的行

命令:grep "s..d" 文件名

效果图:


3.6 匹配所有内容

命令:grep ".*" 文件名

效果图:


3.7 匹配以大写M开头的行

命令:grep "^M" 文件名

效果图:

3.8 匹配以!结尾的行

命令:grep "\!$" 文件名

效果图:


3.9 匹配所有的空行

为了方便观察 添加参数-n打印一下行号。

命令:grep "^$" 文件名

效果图:

3.10 匹配s和id中间的字母要么是a要么是o的行

命令:grep "s[ao]id" 文件名

效果图:

3.11 匹配任意一个数字的行

命令:grep "[0-9]" 文件名

效果图:


3.12 匹配用小写字母开头的行

命令:grep "^[a-z]" 文件名

效果图:

3.13 匹配没用小写字母开头的行

命令:grep "^[^a-z]" 文件名

效果图:


3.14 匹配不以字母开头的行

命令:grep "^[^a-zA-Z]" 文件名

效果图:

3.15 匹配使用 . 结束的行

命令:grep "\.$" 文件名

效果图:


3.16 匹配a字母连续出现3次或大于3次的行

命令:grep "a\{3\}" 文件名

效果图:

3.14 匹配在字母sa和字母i直接有至少一个a,最多三个3

命令:grep "sa\{1,3\}i" 文件名

效果图:

目录
相关文章
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
25天前
|
Shell Linux Windows
让我们熟悉一下 shell 正则表达式使用
正则表达式是一种文本处理工具,用于匹配、查找、替换或提取字符串中的特定模式。通过普通字符和特殊字符(元字符)组成,定义匹配规则。本文档通过示例展示了如何使用正则表达式进行字符串搜索、过滤和模式匹配,包括基本匹配、行首行尾定位、字符集使用、任意字符与重复字符处理以及限定重复次数等高级功能。
43 7
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
110 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
47 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
82 12
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
53 12