【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" 文件名

效果图:

目录
相关文章
|
2月前
|
Unix Linux Shell
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
49 0
|
2月前
|
Shell C++ 开发者
【Shell 编程指南】Shell运算操作符之$[]详解
【Shell 编程指南】Shell运算操作符之$[]详解
18 0
|
3月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
61 0
|
15天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
2月前
|
存储 Java Shell
bigdata-04-shell编程基础
bigdata-04-shell编程基础
21 0
|
2月前
|
Shell Linux C++
【Shell 编程设计】 编写自己的清理后台的Shell脚本
【Shell 编程设计】 编写自己的清理后台的Shell脚本
33 1
|
2月前
|
存储 Shell 数据安全/隐私保护
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
29 0
|
2月前
|
Shell C语言 C++
【Shell 编程指南】shell中的(),{}几种语法用法
【Shell 编程指南】shell中的(),{}几种语法用法
17 0
|
2月前
|
Shell 程序员 Linux
【Shell 编程指南】shell运算操作符之(())
【Shell 编程指南】shell运算操作符之(())
19 0
N..
|
2月前
|
JavaScript 前端开发 PHP
web编程的正则表达式
web编程的正则表达式
N..
10 1