文章目录
POSIX标准将正则分为两类
基本正则
扩展正则
基本正则表达式元字符集合及其意义
基本正则表达式元字符集合及其意义
元字符 意义 举例
* 匹配前一个普通字符0次或多次重复 hel*o,可以匹配hello,helllo
. 匹配任意一个字符,或者空格 ..73.,可以匹配45732,4 732
^ 匹配行首,或在[]里面匹配后面字符的非-取反 ^clean,匹配以clean开头的行
$ 匹配行尾 nologin$,匹配以nologin结尾的行
[] 匹配字符集合 [0123456789],匹配任意一个数字(穷举)
\ 转义符,屏蔽一个元字符的特殊意义
\<\> 精确匹配符号 \<this\>,精确匹配this这个单词,不会匹配thiser等
\{n\} 匹配前面字符出现n次 hel\{2\}o,精确匹配l两次,匹配hello
\{n,\} 匹配前面字符至少出现n次 hel\{2,\}o,匹配l至少两次
\{n,m\} 匹配前面字符出现n~m次 hel\{2,3\}o匹配l次数为2到3次
基本正则的常见用法
注意:空格也算是字符
写法 意义
^$ 匹配空行
^.$ 匹配只包含一个字符的行
[0-9] 匹配任意一个数字(范围)
[^b-d] 匹配任意不在b到d之间的字符
扩展正则表达式元字符集合及其意义
扩展正则表达式元字符集合及其意义
元字符 意义 举例
? 匹配前面那个字符0次或者一次 jo?b,可以匹配job,joob
+ 匹配前面那个字符1次或多次,与*类似 se+,可以匹配see,seee
() 表示一个字符集合或用在expr中 re(a|e|d)d,可以匹配read,reed,redd,等价于re[aed]d
| 表示或,匹配一组可选的字符 正则1|正则2|正则3|...
通配介绍
通配元字符及其意义
元字符 意义 举例
* 表示任意字符 rm ./*
? 表示一个任意字符 ls /et?
^ 表示取反 ls /var/log/[a-z]*.[^awk]*匹配任意一个以字母开头,不以awk结尾的日志
[] 字符集 ls /var/log/[a-z]*.log,匹配任意以字符开头的日子文件
{} 表示一组表达式的集合 ls /var/log/{[a-z]*.[^awk]*,[a-z]*.log},满足其中任意一个,是或的关系
bash shell本身不支持正则表达式,但shell支持通配,使用正则的是shell命令和工具如sed,grep,awk,
通配的常见用法
cp ifcfg-eth0{,.bak} 将网卡文件复制以.bak备份一次,相当于:cp ifcfg-eth0 ifcfg-eth0.bak
shell 多行注释
#!/bin/bash
<<NOTE
这里面是多行注释,不会被执行
echo "这个也不会被执行"
NOTE
echo "这个会被执行"
shell开子进程与不开子进程方式执行方式
#开子进程执行脚本的方式
bash test.sh 或者 ./test.sh
#不开子进程执行脚本的方式
source test.sh 或者 . test.sh
#PS:子进程可以使用pstree命令进行查看
echo搭配常见转义字符
#常见转义字符
\f 执行换行,光标仍停留在原来的位置
\n 执行换行,光标移至行首
\t 插入tab制表符
\\ 打印\
\033或者\e 设置终端属性,如字体颜色,背景颜色,定位光标等
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论