Linux正则01

1. 正则符号分类
| 分类 | 命令 | |
| 基础正则Basic RE BRE | ^ $ ^$ . * .* [a-z] [^abc] | grep sed awk |
| 扩展正则 Extend RE ERE | + | {} () ? | egrep sed -r awk |
2. 正则VS通配符
| 分类 | 用途 | 支持的命令 |
| 正则(re) | 三剑客,高级语言,进行过滤(匹配字符) | 三剑客(grep sed awk find rename(ubuntu) expr) |
| 通配符 pathname extension 或glob | 匹配文件(文件名)*.txt *.log | linux下大部分命令都支持 |
3. 基础正则
3.1 ^ 以....开头的行
3.2 $ 以....结尾的行
如grep 'm$' 文件名 查找不到以m结尾的行,可用cat -A 文件名 查看结尾是否有隐藏字符,如有空格,可用grep 'm $' 文件名查找
3.3 ^$ 空行
空行这一行中没有任何内容
空格也是一个字符
匹配出空行
应用:排除文件中的空行 grep -v '^$' 文件名
3.4 .(点)表示任意一个字符
注意:点不匹配空行
3.5 \ 转义字符 :脱掉马甲,打回原形,去除原有特殊含义
匹配中文件中以.点结尾的行 grep '\.$' 文件名
转义字符序列:
\n 回车换行
\t tab键
3.6 * 前一个字符连续出现了0次或0次以上
连续出现0(0出现一次) grep '0*' 文件名
刚开始*比较少单独用,熟练掌握正则后*
3.7 .* 所有内容,任何内容,任意内容
整体记忆:.*表示所有即可
了解:.(点)任意一个字符+*前一个字符连续出现0次或0次以上
eg1: grep '^.*t' 文件名 从开始匹配到t字符结束,匹配开头到t直接所有字符
正则特色:正则表达式的贪婪性,*表示所有或*联系出现的时候,会表现出尽可能的贪婪匹配

浙公网安备 33010602011771号