linux 正则表达式和通配符
来源:互联网 发布:在线端口检测 编辑:程序博客网 时间:2024/05/17 02:37
linux 正则表达式和通配符,bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。
通配符用于查找文件
包含三种: * ? []
* 代表任意个任意字符
? 代表任意一个字符
[] 代表中括号中的一个字符
正则表达式(正则是包含匹配,只要包含就可以匹配上,比如[0-9]可以匹配"7dfssf")
* a*表示0到n个a,这个表达没有任何含义,和 .* 意义相同
. 匹配任意一个字符 s..d 表示s和d中间含有两个任意字符的字符串
^$ 会匹配空白行
[] 与通配符中意义相同,表示中括号中间任意一个字符[0-9]代表0-9任意一个数字[a-z]
^ 在行首代表开头,如果在中括号内部代表取反[^a-zA-Z]代表包含非字母
\ 转义符取消特殊符号的特殊意思 \.$ 代表一个点结尾
[0-9]\{3\} 必须连续三个数字\{1,3\}代表1次到3次
一、正则表达式:
元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。
正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。
正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。
基本的正则表达式元字符集合及其意义
符号意义*0个或多个在*字符之前的那个普通字符.匹配任意字符^匹配行首,或后面字符的非$匹配行尾[]匹配字符集合\转义符,屏蔽一个元字符的特殊意义\<\>精确匹配符号\{n\}匹配前面字符出现n次 P.43\{n,\}匹配前面字符至少出现n次\{n,m\}匹配前面字符出现n~m次1.“*”符号
zha*ng :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang
(根据测试可以不包括前面的字符,即匹配0次)
2.匹配空行
匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”
3."[]"符号
匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围。
[12345] 等价于 [1-5]
我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。
[^b-d] :表示不再b~d范围内的字符
[A-Za-z] [A-Za-z]* :匹配任意英文单词
二、正则表达式的扩展:
扩展的正则表达式元字符及其意义
符号意义?匹配0个或一个在其之前的那个普通字符+匹配一个或多个在其之前的那个普通字符()表示一个字符集合或用在expr中|表示“或”,匹配一组可选的字符1.“?”符号
(根据测试可以不包括前面的字符,即匹配0次)
2."()"符号和“|”符号
"()"符号和“|”符号通常结合使用,表示一组可选字符的集合。
re(a|b|c)d 等价于 re[abc]d
"|"符号也可以表示多个正则表达式的“或”关系。
grep -E “zha?ng|zhi” 文件
三、通配符:
bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。
bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。
通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。(可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上)
最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。
符号意义*任意位的任意字符?一个任意字符^取反1.“{}”符号
表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}
通配符 匹配项
条件表达式
- 文件表达式
if [ -f file ] 如果文件存在
if [ -d ... ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
- 整数变量表达式
if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
- 字符串变量表达式
If [ $a = $b ] 如果string1等于string2
字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)
- linux通配符和正则表达式
- linux通配符和正则表达式
- linux 正则表达式和通配符
- linux shell通配符和正则表达式
- Linux正则表达式和通配符的区别
- linux中的正则表达式和通配符
- linux之通配符和正则表达式
- Linux正则表达式-通配符
- 通配符和正则表达式
- 正则表达式 和 通配符
- 通配符和正则表达式
- 正则表达式和通配符
- 通配符和正则表达式
- 通配符和正则表达式
- Linux正则表达式与通配符
- Linux通配符与正则表达式
- linux通配符与正则表达式
- Linux 正则表达式与通配符
- 避免导致代码难以维护的35种习惯
- kotlin学习笔记(三)
- /var/log/secure
- BZOJ4883: [Lydsy2017年5月月赛]棋盘上的守卫
- CSDN日报20170522 ——《从个人习惯到真正的好方法》
- linux 正则表达式和通配符
- pom.xml加载本地Jar包
- Windows和Linux查看和更改mysql连接池
- java int类型与char类型转换
- uboot下载配置事项,使用uboot下载裸机程序,并运行
- python程序:检查字符串是否是回文(1)
- Android 获取SHA1命令
- python3
- Android开发,GPS获取实时时间并转为北京时间,定位信息,海拔高度,并进行显示