^ ^ab 【匹配a开头的字符】
^(ab) 【匹配ab开头的字符】
$ ab$ 【匹配b结尾的字符;因为是结尾,所以$在后面】
(ab)$ 【匹配ab结尾的字符】
\.$ 【匹配点 . 结尾的字符】
ab*c 【匹配0个或多个b,如:abc、abbbc、ac】
ab+c 【匹配1个或多个b,如:abc、abbbc】
ab?c 【匹配0个或1个b,如:ac、abc】
ab.c 【匹配任意一个字符在b和c之间,如:absc、ab%c】
ab.*c 【匹配任意的字符数在b和c之间,如:abc、ab@【$@asfasc】
{n,m}
ab{0,1}c 【匹配0个或1个b == ab?c】
ab{1,}c 【匹配1个或多个b ==ab+c】
ab{0,}c 【匹配0个或多个b ==ab*c】
\ 【反斜杠,禁用后面的特殊字符,转换为普通字符,如:echo "\\" 结果 \】
^ 【以某个字符或字符串开头 ^a、^(abc)、^[0-9]以数字开头】
$ 【以某个字符或字符串结尾 a$、(ab)$、[0-9]$ 】
. 【代表任意一个字符 a.b:在a和b之间的任意一个字符】
a{7,8} 【匹配7个a或8个a】
^$ 【匹配空行;因为直接^开头到$结尾,中间没有任何字符也即是空了】
^# 【匹配#开头的】
-v 【grep里取反匹配】
x|y 【匹配x或y,如:'(g|f)ood' 匹配good或food】
[a-z] 【匹配任意一个小写字母】
[^a-z] 【匹配任意一个非小写字】
^[a-z] 【匹配任意一个以小写字母开头的】
[abc] 【匹配a或b或c】
[a-zA-Z0-9]【匹配任意一个大小写字母和数字】
^[0-9]{3} 【匹配任意3个数字开头的】
[^0-9] 【匹配非数字】
在linux中,有通配符和正则表达式,这是两个不同的概念。
通配符: 它是由shell解析,并且一般用于匹配文件名。如:ls
正则表达式:是一个字符匹配标准,可以匹配文本中的内容,一些命令工具按此标准实现字符匹配,常用于支持正则表达式的工具,如grep,sed等等。一般用于匹配文件中的内容。
(1).常用的通配符如下:
* 匹配任意多个字符
? 匹配任意一个字符
[ ] 方括号,匹配方括号中出现的任意一个字符
[! ] 方括号中加感叹号,不匹配方括号中出现的任意一个字符
(2).常用的正则表达式如下:
字符匹配:
. 点,匹配任意单个字符 如:c.t 匹配c和t之间有一个字符的
* 匹配其前面一个字符出现的任意次数 ,如 c* 匹配文件中c字符出现的任意次
? 匹配其前面的字符1次或0次,如 c? 匹配文件中c字符只出现1次或0次
+ 匹配其前面一个字符出现至少一次(在扩展正则表达式中)
(3).位置匹配:
^ 锚定行首
$ 锚定行尾
\<或\b 锚定词首,其后面的任意字符必须作为单词首部出现
\>或\b 锚定词尾,其后面的任意字符必须作为单词尾部出现
\B 非单词的开头或结尾
^$ 空白行
\ 通常用于打开或关闭后续字符的特殊含义
(ab)* 匹配ab这个分组出现的任意次
\1 引用第一个左括号以及与之对应的右括号所包括的所有内容,同理还有\2,\3
(4).特殊子字符类:
[:alnum:] 任何字母和数字
[:alpha:] 任何字母
[:cntrl:] 控制字符,在ASCII表中对应八进制000到037,和177('DEL')
[:digit:] 任何数字
[:graph:] 匹配打印字符,相当于 '[:alnum:]' + '[:punct:]'
[:lower:] 小写字母
[:print:] 可打印字符,相当于 '[:alnum:]' , '[:punct:]' , 和space
[:punct:] 标点符号,' ! " $ % & ( ) * +,- / : ; <= > ? @ [ ] \ ^ _ { } | ~
[:space:] 空白字符,tab , newline, vertical tab , form feed , carriage return , and space
[:upper:] 大写字母
[:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F ]
如:cat 123 | grep [[:upper:]]【外层也要带上方括号】