正则表达式
用于搭配脚本或者命令使用极大的丰富了脚本的功能,所以在这里我们把它也归·为shell脚本的一部分(作者个人为了方便大家看才这么分类的)。正则表达式就是通过特殊的符号或者命令来对需要处理数据进行筛选或者加工。
类型 | 含义 | 示例 | 说明 |
---|---|---|---|
^ | 匹配行首 | ^abc | 以abc开头的行 |
$ | 匹配行为 | $abc | 以abc结尾的行^$空行 |
. | 单个字符 | . | 除了换行(\n)外的任意字符5 |
+ | 最少匹配一次 | a+ | 一个或多个a |
? | 最多匹配一次 | a? | 0个或1个a |
* | 匹配任意次 | * | 任意的东西 |
[] | 集合 | grep [a] | 搜索a |
[^] | 集合取反 | grep[^a] |
搜索没有a的 |
{} | 数字查询 | ro\{2,3\} |
搜索以r开头o匹配2到3次 |
\b | 单词边界 | the\b | the后面不许有别的东西 |
\w | 匹配的内容+数字字母下划线 | roo\w | 匹配roo加字母数字下划线的组合 |
\s | 匹配空白 | \s | 匹配含有空格tab的行 |
\d | 匹配数字 | \d | 兼容性较差不管 |
通配符 ".*"匹配任意字符
R
egrep 25[0-9] user #匹配user内的250-259
egrep 1?[0-9]?[0-9] user #匹配0-199
扩展正则
python
grep "ro\{1,2\}t" user #找rt,中间的o可以有1~2个
grep "ro\{2,6\}t" user #找rt,中间的o可以有2~6个
grep "ro\{1,\}t" user #找rt,中间的o可以有1个以及1个以上
grep "ro\{3\}t" user #找rt,中间的o必须只有有3个
grep "\(0:\)\{2\}" user #找连续的2个0: 小括号的作用是将字符组合为一个整体
//扩展后
扩展后要给开头加e或者给grep后面加 -E
egrep "ro{1,2}t" user #找rt,中间的o可以有1~2个
egrep "ro{2,6}t" user #找rt,中间的o可以有2~6个
egrep "ro{1,}t" user #找rt,中间的o可以有1个以及1个以上
egrep "ro{3}t" user #找rt,中间的o必须只有有3个
egrep "(0:){2}" user #找连续的2个0: 小括号的作用是将字符组合为一个整体
R
egrep "root|bin" user #查找root或bin
egrep "the\b" user #查找the并且后面没有任何符号
egrep "\bthe\b" user #前后都没的
egrep "\<the\>" user #同上