Shell编程 之 正则表达式
1. 什么是正则表达式
正则表达式是用于描述字符排列和匹配模式的一种语法规则。
主要用于字符串的模式分割、匹配、查找 和 替换的操作。
2. 正则表达式与通配符
2.1 通配符:
-- * 匹配任意内容
-- ? 匹配任意一个内容
-- [] 匹配中括号中的一个字符
2.2 正则表达式与通配符:
- 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式(搜索字符串的命令能识别正则)。
[root@localhost sh]# grep "echo" process.sh
echo "\$$ is current PID: $$"
echo "\$! is the last PID in background: $!"
- 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配(搜索文件的命令能识别通配符)。
[root@localhost sh]# find . -name "abc*"
./abc
./abcd
3. 基础正则表达式
tips:先在 .bashrc 下定义两个别名,然后 source .bashrc
3.1 星号 * :前一个字符匹配0次或任意多次
3.2 逗点 . :匹配除了换行符外任意一个字符
3.3 尖角 ^ :匹配行首,^ 写在前面
3.4 刀了 $ :匹配行尾,$ 写在后面
3.5 中括 [] :匹配中括号中指定的任意一个字符
3.6 中括内尖角 [^a-z] :匹配除a到z外的任意一个字符
3.7 转义符 \ :用于取消特殊符号的含义
3.8 重复符号 \{n\} :表示其前面的字符恰好出现n次
重复符号 \{n,\} :表示其前面的字符出现不小于n次
3.9 重复次数 \{n,m\} :匹配其前面的字符至少出现n次,最多出现m次
4. 案例
例1:匹配日期格式 YYYY-MM-DD
[ 0 - 9 ] \ { 4 \ } - [ 0 - 9 ] \ { 2 \ } - [ 0 - 9 ] \ { 2 \ }
例2:匹配IP地址
[ 0 - 9 ] \ {1 , 3 \ } \ . [ 0 - 9 ] \ { 1 , 3 \ } \ . [ 0 - 9 ] \ { 1 , 3 \ } \ . [ 0 - 9 ] \ { 1 , 3 \ }
posted on 2017-02-10 21:04 你的踏板车要滑向哪里 阅读(171) 评论(0) 编辑 收藏 举报